我整个星期都在试图解决这个问题。我的主要问题是将声音与信号中的噪声分开(参见绘图示例:
在这些小噪音之间是 dtmf 音调。一旦我得到音调的起点和终点的索引,转换它们就很容易了。
我们应该如何准确地确定噪音是开始还是开始?每个噪音都可以有不同的长度,并且在实际声音中会有很多突然的下降。我理解采取小块的概念,但是我们如何比较它们以确定声音中的噪音。我们可以通过比较一个索引在某个数字下连续多长时间来消除沉默吗?我不知道如何开始这个问题。
function [phone_number,ERROR] = cjm274_dtmf_number(dtmf_signal,fs)
Input:
% dtmf_signal - samples of the input waveform
% fs - sampling frequency
% Output:
% phone_number - string of characters representing a phone number
% ERROR - set to zero if phone_number does not represent a valid
% phone number