Audio test libs to compute audio quality and 3A performance by objective metrics
pcm,wav inputfiles is allowed,support different samplerate (invalid params are simply corrected to valid ones)
# How to install ?
#Install with pip:
simply use pip to install this toolkit
"pip install algorithmLib"
# How to use?
#just see ./demos/
# PESQ example
src = "a.pcm"
test = "b.pcm"
score = compute_audio_quality('PESQ',testFile=test,refFile=src,samplerate=16000)
or
src = "a.wav"
test = "b.wav"
score = compute_audio_quality('PESQ',testFile=test,refFile=src)
# G160 example
src = "a.wav"
test = "b.wav"
cle = "c.wav"
tnlr,nplr,snri,dsn = compute_audio_quality("G160",testFile=test,refFile=src,cleFile=cle)
or
src = "a.pcm"
test = "b.pcm"
cle = "c.pcm"
tnlr,nplr,snri,dsn = compute_audio_quality("G160",testFile=test,refFile=src,cleFile=cle,samplerate=48000)
#p563 example
test = "a.wav"
Mos,SpeechLevel,Snr,NoiseLevel = compute_audio_quality('P563',testFile=test)
:param metrics: G160/P563/POLQA/PESQ/STOI/STI/PEAQ/SDR/SII/LOUDNESS/MUSIC/MATCH/
TRANSIENT/GAINTABLE/ATTACKRELEASE/MUSICSTA/AGCDELAY/MATCHAEC/
ERLE/SLIENCE/FORMAT/AECMOS/AIMOS/TRMS/ARMS/PRMS/SRMS/LRATE/NOISE/CLIP/DELAY/ECHO/SPEC/PITCH/EQ,必选项
# G160 无采样率限制; WAV/PCM输入 ;三端输入: clean、ref、test;无时间长度要求;
# P563 8000hz(其他采样率会强制转换到8khz); WAV/PCM输入 ;单端输入: test;时长 < 20s;
# POLQA 窄带模式 8k 超宽带模式 48k ;WAV/PCM输入 ;双端输入:ref、test;时长 < 20s;
# PESQ 窄带模式 8k 宽带模式 16k ;WAV/PCM输入 ;双端输入:ref、test;时长 < 20s;
# STOI 无采样率限制; 双端输入:ref、test;无时间长度要求;
# STI >8k(实际会计算8khz的频谱); WAV/PCM输入 ;双端输入:ref、test;时长 > 20s
# PEAQ 无采样率限制;WAV/PCM输入 ;双端输入:ref、test;无时间长度要求;
# SDR 无采样率限制; WAV/PCM输入 ; 双端输入:ref、test;无时间长度要求;
# MATCH 无采样率限制; WAV/PCM输入;三端输入:ref、test、out; 无时间长度要求;
# MUSIC 无采样率限制;WAV/PCM输入;双端输入:ref、test;无时间长度要求;
# TRANSIENT 无采样率限制,WAV/PCM输入;三端输入:cle、noise、test; 无时间长度要求;
# GAINTABLE 无采样率限制,WAV/PCM输入;双端输入:ref、test;固定信号输入;
# ATTACKRELEASE 无采样率限制,WAV/PCM输入;双端输入:ref、test;固定信号输入;
# MUSICSTA 无采样率限制,WAV/PCM输入;双端输入:ref、test;无时间长度要求;
# AGCDELAY 无采样率限制,WAV/PCM输入;双端输入:ref、test;无时间长度要求;
# MATCHAEC 无采样率限制 WAV/PCM输入;三端输入:ref、mic,test,;无时间长度要求;
# ELRE 无采样率限制 WAV/PCM输入;三端输入:mic,ref、test;无时间长度要求;
# SLIENCE 无采样率限制 WAV/PCM/MP4输入;单端输入:test;无时间长度要求;
# FORMAT 无采样率限制 WAV/MP4输入;单端输入:test;无时间长度要求;
# AECMOS 无采样率限制 WAV/PCM输入 ;三端输入:mic,ref、test;无时间长度要求;
# AIMOS 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# TRMS 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# ARMS 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# PRMS 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# SRMS 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# LRATE 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# NOISE 无采样率限制 WAV/PCM输入 ;双端输入:ref、test;无时间长度要求;
# CLIP 无采样率限制 WAV/PCM输入 ;单端输入:test;无时间长度要求;
# DELAY 无采样率限制; WAV/PCM输入;双端输入:ref、test; 无时间长度要求;
# ECHO 无采样率限制; WAV/PCM输入;双端输入:ref、test; 无时间长度要求;
# SPEC 无采样率限制; WAV/PCM输入;单端输入:test; 无时间长度要求;
# PITCH 无采样率限制;WAV/PCM输入;双端输入:ref、test; 无时间长度要求;
# EQ 无采样率限制;WAV/PCM输入;双端输入:ref、test; 无时间长度要求;
# MATCH2 无采样率限制; WAV/PCM输入;三端输入:ref、test、out; 无时间长度要求;
# MATCH3 无采样率限制; WAV/PCM输入;三端输入:ref、test、out; 无时间长度要求;
不同指标输入有不同的采样率要求,如果传入的文件不符合该指标的要求,会自动变采样到合法的区间
:param testFile: 被测文件,必选项
:param refFile: 参考文件,可选项,全参考指标必选,比如POLQA/PESQ/PEAQ
:param micFile: micIN,可选项,回声指标必选,MATCHAEC/ELRE/AECMOS
:param cleFile: 干净语音文件,可选项,G160,TRANSIENT需要
:param noiseFile 噪声文件,可选项,突发噪声信噪比计算需要
:param aecCaliFile 用于做AEC对齐的校准文件 MATCHAEC专用
:param outFile 输出文件,可选项,对齐文件可选
:param samplerate: 采样率,可选项,pcm文件需要 default = 16000
:param bitwidth: 比特位宽度,可选项,pcm文件需要 default = 2
:param channel: 通道数,可选项,pcm文件需要 default = 1
:param refOffset: ref文件的样点偏移,可选项,指标G160需要
:param testOffset: test文件的样点偏移,可选项,指标G160需要
:param maxComNLevel: 测试G160文件的最大舒适噪声
:param speechPauseLevel 测试G160文件的语音间歇段的噪声
:param audioType 输入音频的模式 0:语音 1:音乐 MATCH/GAINTABLE需要
:param aecStartPoint 计算AECMOS,选择从第几秒开始计算
:param aecTargetType 0:Chiness 1:English 2:Single Digit 3:Music 计算MATCHAEC/ELRE
:param aecScenario 计算aec mos专用 0:'doubletalk_with_movement', 1:'doubletalk', 2:'farend_singletalk_with_movement', 3:'farend_singletalk', 4:'nearend_singletalk'
:param rmsCalsection 计算rms的区间 TRMS和ARMS需要,时间单位s,比如:[1,20]
:param polqaMode 计算polqa的模式 0:默认模式 1: 理想模式:排除小声音的影响,把声音校准到理想点平 -26db
:param pitchLogMode 计算pitch的模式 0:线性模式,用于SetLocalVoicePitch接口; 1:对数模式,用于SetAudioMixingPitch接口;默认为1
:param fineDelaySection 精准计算延时(MTACH3),需要手动标出语音块的位置,比如有三段:speech_section=[[2.423,4.846],[5.577,7.411],[8,10.303]]
:return:
Metadata
Release files for AlgorithmLib 4.0.35
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| AlgorithmLib-4.0.35.tar.gz | 16.1 MB | Without provenance | Details |
Release files / AlgorithmLib-4.0.35.tar.gz
| Download URL | AlgorithmLib-4.0.35.tar.gz |
|---|---|
| Size | 16.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c795b264a7a98a505cac8e8c5d6e46089d741bba2455f70ced6e7138dee3547
|
|
BLAKE2b-256 checksum How to use checksums |
b1b8f6d288302d90b271f449070060ca860ed6f9770fff6747f93dff93028989
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.7
|
Security for AlgorithmLib 4.0.35
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.