在 gnuradio-companion 中,我使用音频源块作为下一个块的输入信号。一切正常。唯一的小问题是我从我的麦克风接收信号(这是正常的行为)。我宁愿直接播放音频信号,而不必通过我的扬声器、我房间的空气和麦克风。
所有这些都会产生信号损失并增加噪声。
我知道有文件源块,但这对我来说不是一个真正的解决方案。
我也知道我可以将迷你插孔电缆从输出端插入声卡的输入端。这也不是解决方案,因为它可能会损坏声卡,并且仍然会增加失真。
目前我使用 Ubuntu 和 alsa 作为音频驱动程序。
我知道有像 jaaa 和 xoscope 这样的程序可以做到这一点,所以我认为我所要求的并不奇怪。
最佳答案
您将需要构建一个“监视器”ALSA 设备。
我发现 this ArchLinux wiki page 推荐了以下程序,它也应该适用于 Ubuntu,因为它也使用 PulseAudio:
pactl list|grep monitor
选择正确的监视器字符串,例如
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
。然后在您的主目录中创建(如果它不存在)并编辑 .asoundrc
:gedit ~/.asoundrc
添加
pcm.pulse_monitor {
type pulse
device <device name from above>
}
ctl.pulse_monitor {
type pulse
device <device name from above>
}
到那个文件。
现在,使用
pulse_monitor
作为音频源中的设备字符串。对我来说效果很好(在 Fedora 22 上):编辑 :
添加了关于此的 GNU Radio wiki page。
关于audio - GNU Radio : Use sound output as input source,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32213443/