把模拟信号转变成 数字信号,前者是连续的,后者离散的
。因此有DAC和ADC。
需要关注的三个指标,这三个指标决定音频的质量
音频数据每秒钟
需要用多少个比特来表示,单位常为kbps。 这个数字越大音频质量越好,但是数据文件就越大。
振幅
。计算方式20lg(amp1/基准振幅),基准振幅就是在声音最大的时候采用的振幅。
每秒钟采集多少个样本
。采样率越高其质量越好,一般在底层是48k采样率,宽带电话是16k,窄带是8k。
Nyquist采样定律:采样率大于或等于连续信号最高频率分量的2倍时,采样信号可以用来完美重构原始连续信号。
这句话的意思大概就是, 比如采样率是16Khz, 那么频率只能达到8kHz;如果是48kHz的采样率,那么频率可以达到24kHz.
开源软件 audacity
的插件就是ny结尾的,里面用lisp语言写的,用于计算一些rms、THD等
模拟信号数字化的取样技术
,将模拟语音信号变换为数字信号的编码方式,把时间上连续的信号变成时间上离散的信号
。把连续的编码成离散的,这里有损失,但是人耳听不出来。与相等的PCM比较,这种编码只需要25%的比特数
,比特率小,文件就小。每一帧的图像
表达信息;视频包含的音频可提供大量信息;视频通过图像的运动、场景的变换提供信息;没有UV信息一样可以显示完整的图像
,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽
。因此 YUV编码更常用。
RGB和YUV之间可以转换。
视频编码的最主要目的是数据压缩
,在传输过程中花费太多的带宽。
数据有冗余的,所以可以压缩
封装格式(也叫容器),就是将已经编码压缩好的
视频轨
和音频轨
按照一定的格式放到一个文件中
,也就是说仅仅是一个外壳,或者大家把它当成一个放视频轨和音频轨的文件夹也可以。说得通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个碗,或者一个锅,用来盛放饭菜的容器。 下面是几种常用的 视频文件后缀类型 与其相对应的 封装格式。
视频编码格式, 比较常见 H264
。音频编码常见的 aac
,和 mp3
。 AAC压缩比高,音质更好。
接近的预测模式
,得到预测图片A, A与原图对比相减,得到 残差值。
然后把残差和预测模式保存起来就可以恢复了。验证数据用的是
根据提供给算法的信息,语音质量测试算法可分为两大类
完全引用"(FR)
算法可以访问并使用原始参考信号进行比较(即差异分析)。它可以比较参考信号的每个样本(说话端)与降级信号的每个对应样本(侦听器侧)。FR 测量可提供最高的精度和可重复性
,但只能应用于实时网络中的专用测试(例如移动网络基准的驱动测试工具)
"无参考"(NR)
算法仅使用降级信号进行质量评估,并且没有原始参考信号的信息。NR 算法只是低准确性估计值
,因为源引用的原发语音特征(例如男性或女性说话者、背景噪音、非语音)完全未知。NR 算法的常见变体甚至不分析解码的音频信号
,而是对 IP 数据包级别上的数字位流进行分析。因此,测量仅限于传输流分析。
POLQA是最新的,其他都是小弟。
Perceptual Evaluation of Speech Quality PESQ结合了PSQM和 PAMS的优势,针对VoIP和混合的端到端应用作了改进,并针对MOS和MOS-LQ计算方法做了修改。 也是全参考测试算法
## first, install soundfile and pypesq
import soundfile as sf
from pypesq import pesq
ref, sr = sf.read("sine.wav")
deg, sr = sf.read("sine1.wav")
score = pesq(ref, deg, sr)
print(111,score)
得到的score分数就是MOS的值
输出结果
4.5
计算方法
# here is the implementation
https://chromium.googlesource.com/external/webrtc/+/3c1e558449309be965815e1bf/webrtc/audio/test/low_bandwidth_audio_test.py
并扩展到处理更高带宽的音频信号。进一步的改进针对时间调用信号的处理,具有许多延迟变化。 全参考算法,在对参考和测试信号的相应摘录进行时间对齐后,对语音信号进行采样分析 ,对于端到端的质量评估。
前面提到的都是全参考的, 无参考, 马上就来.看下面这个就是实际的应用.
python -m frechet_audio_distance.compute_fad --background_stats stats/background_stats --test_stats stats/test1_stats
python -m frechet_audio_distance.compute_fad --background_stats stats/background_stats --test_stats stats/test2_stats
PEVQ还通过各种KPI(包括PSNR、失真指示器和唇部同步延迟)来量化视频信号中的异常。
psnr是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比,是一种评价图像的客观标准,它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目。
PSNR是最普遍,最广泛使用的评鉴画质的客观量测法,不过许多实验结果都显示,PSNR的分数无法和人眼看到的视觉品质完全一致
,有可能PSNR较高者看起来反而比PSNR较低者差。这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化
SSIM(structural similarity index),结构相似性,是一种衡量两幅图像相似度的指标。该指标首先由德州大学奥斯丁分校的图像和视频工程实验室(Laboratory for Image and Video Engineering)提出。SSIM使用的两张图像中,一张为未经压缩的无失真图像,另一张为失真后的图像。
webrtc WebRTC是一个免费的开放软件项目,可通过简单的API为浏览器和移动应用程序提供实时通信(RTC)功能。 WebRTC组件已经过优化,可以最好地满足此目的。
mic 主要是针对audio
camara 分2部分, 一个WxH分辨率(width x height) 和支持的分辨率
网络
验证它可以使用给定协议与转服务器进行通信
验证它至少可以收集一个 IPv6 候选者
连接性 (主要TURN server 连接的验证)
吞吐量
建立环回调用并测试链路上的数据通道吞吐量
rtt(round-trip time)
.性能(增加时间、最大值、平均值
)