2011-12-15 74 views
1

我有一个电话调制解调器(SIM5320EVB),它给ttyUSB0上的语音数据作为PCM,每个字节为100个字节,每个字节为1600字节。我可以在minicom上看到数据。如何在linux中捕获PCM数据(我使用ubuntu),并在现场直播或至少保存并播放数据?有没有可用的应用程序或API?如果至少应办法,建议我将尝试开发一个..如何通过串口和进程捕获语音PCM数据?

回答

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

然后得到Audacity并尝试打开文件与它,尝试不同的输入格式。如果您能猜出正确的格式,您应该能够听到您制作的声音。

+0

这很好。谢谢。它在8000hz被签名为16bit PCM。如何使这个实时,即。如何通过tty.My的意图播放原始数据,并将此调制解调器音频数据路由到接口主应用板的音频接口。 – user1099253 2011-12-15 09:22:09

0

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

这要求sox能够在您的系统上播放音频;我在pulseaudio的基础音响系统方面取得了成功。

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