我有一些电话语音音频,音频中偶尔会出现“光点”。这些光点似乎来自隐藏在 PSTN 中的 IP 链路(这是一个概念性的解释,所以不要担心丢包隐藏之类的事情)。当一个数据包被丢弃时,音频中没有间隙,相反,音频被拼接在一起,导致了一个小的不连续性。
我正在寻找一种以编程方式识别不连续性的方法。识别的最重要特征是准确的时间定位。此外,检测所有不连续性并不重要。甚至一半就足够了。我的目标是确定检测到的不连续性之间的时间差异。我可以使用这些信息来考虑错误可能涉及哪些过程。
我尝试了各种光谱/小波分析来寻找不连续性,但这些方法并不比在时域中扫描数据(在波形查看器中)并判断信号值更有效。有时条件恰到好处,因此您可以清楚地识别时域中的不连续性。一般来说,识别是非常困难的。
所以我想到了另一种方法。音频信号是人声,因此相关特征定义良好。我想我可以利用这一点并在数据中寻找“异常值”。
所以这是基本问题:
我的人声已经通过带宽受限的频道传输,带宽为 [200-3600Hz]。采样率为 8KHz,音频编码为 16 位线性 PCM。
假设我有运行 10000 个样本的数据,称该数字为 N,数据样本为 x[n]。
我想创建一个扫描数据的估计器,一次处理 M 个样本,并以 1 个样本增量推进数据。
M 大约为 10 到 100 个样本。
给定样本 x[n] 到 x[n+M],我想估计 x[n+M+1]。
这似乎是一个标准的估计问题,但我不是试图在存在 AWGN 的情况下估计 x[n],我试图根据人类语音信号样本之间的已知相关性从先前的 M 值预测 x[n] .
调用估计 e[n]。然后,我将 e[n] 与 x[n] 进行比较,并使用阈值来确定数据是否可能是异常值。
所以妙语是...
估计器参数可以通过两种方式接近......
1)从数据中导出参数
2)根据人类语音的已知特征强加参数
至于先验信息:
男性或女性声音(平均/典型)的 PSD 可用
用于模拟人声的概率分布可用
我只是在寻找估计方法的一些方向。
我有数学来处理数字并尝试各种方法和假设。
谢谢。