管道输出从aplay到arecord的centos

时间:2017-03-16 19:24:09

标签: linux centos alsa

我正在尝试为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很新,所以如果有人能指出我正确的方向,它我将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

问题已修复,而不是使用snd-dummy我使用snd-aloop和音频正确管道引用这个问题:

Is it possible to arecord output from dummy card?