如何通过串口和进程捕获语音PCM数据?

时间:2011-12-15 06:34:53

标签: linux serial-port voice modem pcm

我有一个电话调制解调器(SIM5320EVB),它将ttyUSB0上的语音数据作为PCM提供,每100ms有1600个字节。我可以在minicom上查看数据。如何在linux中捕获PCM数据(我使用ubuntu)并在运行中实时监听或至少保存并播放数据?有没有可用的应用程序或API?如果建议至少提出方法,我会尝试开发一个..

2 个答案:

答案 0 :(得分:1)

cat /dev/ttyUSB0 > my_cap_file
# make some noise for 5s for example, then hit ^C

然后获取Audacity并尝试使用它打开您的文件,尝试不同的输入格式。如果您猜出正确的格式,您应该能够听到您产生的声音。

答案 1 :(得分:0)

sox命令安装play并使用:play -r 8000 -c 1 -t raw -e signed-integer -b 16 /dev/ttyUSB0。即:比特率8KHz,1通道(单声道),原始数据(PCM),格式有符号整数16位宽,数据可以从ttyUSB0读取。

这需要sox才能在您的系统上播放音频;我已经为pulseaudio成功获得了基础音响系统。

您可能需要修改play的缓冲区大小。默认情况下,它会缓冲数据,这会产生很小但非常明显的延迟。