我想在Linux下使用笔记本电脑作为鼻窦发生器.但我还没有找到一个可以产生声音的程序.有人可以告诉我正确的程序或脚本.谢谢.
PS:我不想用它来酿酒.PS2:我发现了这个:"aoss siggen"和"speaker_test".但首先是基于ncurses而第二个不能生成连续信号.你可能知道更多吗?
最近我在CS 101课堂上看到了一个视频讲座,它启发我开始使用C语言中的WAV文件格式.我今天的项目一直是使用简单的数学正弦函数创建声音.尽管存在一些障碍,我的程序现在可以接受几个输入(波的频率,波的幅度,采样率等)并创建包含指定音高的wav文件.
但是,在我的计算机扬声器上播放这些音调时,会发出一种奇怪的,有节奏的砰砰声,这种声音随采样率而变化.在较高的采样率下,弹出声音的频率增加并变成恼人的呜呜声.
奇怪的是,弹出声音在具有相同文件的不同计算机上是一致的.
下面我将发布用于生成WAV文件的代码.任何可能导致这种现象的见解都将受到赞赏.这可能只是我某处的一个愚蠢的错误.:)
#include <stdio.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <string.h>
#include <math.h>
struct WAVHeader {
char ChunkID[4];
uint32_t ChunkSize;
char RIFFType[4];
};
struct FormatHeader {
char ChunkID[4];
uint32_t ChunkSize;
uint16_t CompressionCode;
uint16_t Channels;
uint32_t SampleRate;
uint32_t AvgBytesPerSec;
uint16_t BlockAlign;
uint16_t SigBitsPerSamp;
};
struct DataHeader {
char ChunkID[4];
uint32_t ChunkSize;
};
void main(int argc, char * argv[]) {
//Check for valid number of arguments or display help
if(argc < 8) {
printf("Usage:\n./Tone -l [length] -s [frequency] …Run Code Online (Sandbox Code Playgroud) 我正在用c开发一个应用程序来读取简单的PCM WAV文件.我的问题是,我应该如何解释数据块中的样本,以便我可以提取样本的频率?
给定WAV示例,原始数据如何表示频率.例如,这个数据块,24 17 1e f3,对于立体声,16位,左声道样本是,0x1724 = 5924d,表示5924Hz?对于签名的样本或人类听不到的频率,怎么可能呢?
我在没有插孔的情况下在 Ubuntu 14.04 上安装了 pyo 并运行 Python 2.7 。我按照 pyo wiki 中编写的基于 Debian 的安装说明进行操作。这是我使用的代码(在pyo 介绍页面中):
from pyo import *
s = Server().boot()
s.start()
a = Sine(mul=0.01).out()
Run Code Online (Sandbox Code Playgroud)
结果如下:
pyo version 0.6.8 (uses single precision)
ALSA lib pcm_dsnoop.c:618:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:1022:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused …Run Code Online (Sandbox Code Playgroud)