管道输出应用于centos中的记录

Piping output from aplay to arecord in centos

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

问题已解决,我没有使用 snd-dummy,而是使用了 snd-aloop 并且音频管道正确地引用了这个问题:

Is it possible to arecord output from dummy card?