2009-09-18 42 views
0

是否有任何良好的C++源代码或api来处理电话线,如理解音调信号。例如,我想知道该人是否输入了3(这很可能是使用它的音调来完成的)。用于理解电话线上的音调信号的C++ api

为此我需要一个特殊的调制解调器,还是只能使用标准调制解调器来完成。

回答

1

DTMF是您正在寻找的术语: http://en.wikipedia.org/wiki/Dual-tone_multi-frequency

是否能够处理传入的DTMF音频与特定的调制解调器取决于调制解调器是否支持它。如果有,则会有一个AT命令来管理它,既用于发出输出的DTMF音频,又用于收到输入的DTMF音调。

有一些例子在这里:http://www.tek-tips.com/viewthread.cfm?qid=24275&page=1

具体的AT命令可能取决于特定的调制解调器。

如果您的调制解调器无法处理DTMF本身,并且您有兴趣能够将DTMF音调注入输出音频流/从输入音频中识别并提取DTMF音调,那么您需要一些DSP支持;这不会是你可以在C++中完成的事情。

+2

即使在C++中,生成DTMF音调也相当平凡。从原始音频中识别它们肯定可以用C++完成(通常借助于FFT或Goertzel算法)。 – Managu 2009-09-18 12:01:27

0

在网上似乎有很多TAPI DTMF解码器和示例代码,这将使您从硬件中脱颖而出。