我正在尝试为websocket客户端自动化一些测试。此客户端根据命令连接到服务器,服务器基本上是语音到文本引擎。客户端支持来自麦克风的音频流,以便人们可以实时记录自己并将其发送到引擎。我在没有物理声卡的centos VM中运行客户端所以我决定使用
模拟一个modprobe snd-dummy
我的计划是管道输出
aplay audioFile.raw
输入
arecord test.raw -r 8000 -t raw
这样我就可以使用它来模拟麦克风功能。我在网上看到,ALSA的文件插件可以将一个命令的结果传递到下一个命令,所以我对我的根目录中的.asoundrc文件进行了以下修改:
pcm.!default {
type hw
card 0
}
pcm.Ted {
type file
slave mySlave
file "| arecord test.raw -r 8000 -t raw"
}
pcm_slave.mySlave {
pcm "hw:0,0"
}
ctl.!default {
type hw
card 0
}
当我尝试以下命令时:
aplay audioFile.raw -D Ted
它似乎运行正常,但test.raw的输出似乎只包含沉默......有谁知道我做错了什么,我对ALSA很新,所以如果有人能指出我正确的方向,它我将不胜感激。谢谢!
答案 0 :(得分:2)
问题已修复,而不是使用snd-dummy我使用snd-aloop和音频正确管道引用这个问题: