如何验证RTP传输接收的正弦波音频准确性及信号完好度
背景
我需要校验通过RTP协议接收的音频数据与原始源数据的一致性。我的系统中,音频由嵌入式平台设备播放后通过网络发送,供其他设备采集播放,音频规格可覆盖单声道、立体声、环绕声,采样率与比特参数符合通用标准。
目前我使用包含正弦波的.wav文件进行测试,参数规格为44.1 kHz采样率、440Hz频率、单声道、16-bit PCM数据,选择正弦波是因为其信号干净、易分析。
我使用如下Python代码可以验证两个文件是否一致,当输出的alignment.distance为0.0时说明两个音频相似:
import librosa import librosa.display import matplotlib.pyplot as plt from numpy.linalg import norm from dtw import dtw # Loading audio files y1, sr1 = librosa.load("./test-audio-files/1kHz_44100Hz_16bit_05sec.wav") y2, sr2 = librosa.load("./test-audio-files/received.wav") # Computing MFCC values mfcc1 = librosa.feature.mfcc(y1, sr1) mfcc2 = librosa.feature.mfcc(y2, sr2) alignment = dtw(mfcc1.T, mfcc2.T) print("The normalized distance between the two : ", alignment.distance) # 0 for similar audios
疑问
我现在想知道如何验证正弦波本身的精度?上述方案仅在源文件本身完美准确的前提下可以正常工作,如果源文件本身存在问题,上述方案也会判定两个文件匹配。我目前仅使用.wav文件测试,后续还需要支持mp3、mp4等格式的文件。
我希望能检测到如下图所示的丢包问题:
参考
测试所用.wav文件来源于公开音频素材库。
内容的提问来源于stack exchange,提问作者user2669989
相关产品推荐
相关产品推荐

