使用 sox 和 multimon-ng 从麦克风实时检测 DTMF 代码

live detect DTMF code from the mic using sox and multimon-ng

我想检测实时音频流中的 DTMF 音调。 我可以录制现场音频并使用 sox 将其存储到 wave 文件中:

sox -b 16 -e signed-integer -c 1 -d -t wavpcm tt.wav

我也可以使用 multimon-ng 检测音调:

multimon-ng -t wav -a DTMF tt.wav 

但是当我连接两者时它不起作用:

sox -b 16 -e signed-integer -c 1 -d -t wavpcm - | multimon-ng -t wav -a DTMF -

请帮我完成这个流程——现场录音+检测DTMF音+打印字符码

我没试过,但我想到的是使用命名管道

mkfifo ~/fifo

sox -b 16 -e signed-integer -c 1 -d -t wavpcm ~/fifo &

multimon-ng -t wav -a DTMF ~/fifo

好像以前用类似的方法解决过:

Stream audio from named pipe