计算短期客观可理解性度量
项目描述
STOI 的 Python 实现
实施经典和扩展的短期客观可理解性措施
与降级语音信号的可理解性高度相关的可理解性度量,例如,由于加性噪声、单/多通道降噪、二进制掩蔽和语音编码语音,如 CI 模拟。STOI 度量是侵入性的,即,干净和退化的语音信号的函数。当您对非线性处理对嘈杂语音的影响感兴趣时,STOI 可能是语音清晰度指数 (SII) 或语音传输指数 (STI) 的一个很好的替代方案,例如降噪、二进制掩蔽算法对语音清晰度的影响。
描述取自Cees Taal 的网站
安装
pip install pystoi或者
pip3 install pystoi
用法
import soundfile as sf
from pystoi import stoi
clean, fs = sf.read('path/to/clean/audio')
denoised, fs = sf.read('path/to/denoised/audio')
# Clean and den should have the same length, and be 1D
d = stoi(clean, denoised, fs, extended=False)
Matlab代码和测试
此 repo 中的所有 Matlab 代码均取自或改编自Cees Taal 编写的此处可用代码(STOI – Short-Time Objective Intelligibility Measure –)。
感谢 Cees Taal 开源了他的 Matlab 实现并启用了对这个 python 代码的全面测试。
如果您想运行测试,您将需要 Matlab,matlab.engine(在此处安装说明)和matlab_wrapper(安装说明pip install matlab_wrapper)。测试只能在 Python 2.7 下运行,matlab.engine并且matlab_wrapper仅与 Python2.71e-3兼容以 10kHz 采样)。
非常感谢 @gauss256 将所有的 matlab 脚本翻译成 Octave,并为它编写了所有的测试!
贡献
欢迎任何贡献~,特别是为了提高代码的执行速度~(感谢 Przemek Pobrotyn 的 4 倍加速!):
改进重采样方法以匹配 Matlab 中的重采样感谢@gauss256,这可以被认为是一个已解决的问题!tests/。- 为 Python 3 编写测试(
transplant例如)
参考
- [1] CHTaal, RCHendriks, R.Heusdens, J.Jensen “时频加权嘈杂语音的短时客观可理解度测量”,ICASSP 2010,德克萨斯州达拉斯。
- [2] CHTaal、RCHendriks、R.Heusdens、J.Jensen“时频加权嘈杂语音清晰度预测算法”,IEEE 音频、语音和语言处理汇刊,2011 年。
- [3] J. Jensen 和 CH Taal,“预测调制噪声掩蔽器掩蔽的语音清晰度的算法”,IEEE Transactions on Audio、Speech and Language Processing,2016 年。