語音質量評估


語音質量評估,就是通過人類或自動化的方法評價語音質量。在實踐中,有很多主觀和客觀的方法評價語音質量。主觀方法就是通過人類對語音進行打分,比如MOS、CMOS和ABX Test。客觀方法即是通過算法評測語音質量,在實時語音通話領域,這一問題研究較多,出現了諸如如PESQ和P.563這樣的有參考和無參考的語音質量評價標准。在語音合成領域,研究的比較少,論文中常常通過展示頻譜細節,計算MCD(mel cepstral distortion)等方法作為客觀評價。所謂有參考和無參考質量評估,取決於該方法是否需要標准信號。有參考除了待評測信號,還需要一個音質優異的,沒有損傷的參考信號;而無參考則不需要,直接根據待評估信號,給出質量評分。近些年也出現了MOSNet等基於深度網絡的自動語音質量評估方法。

語音質量評測方法

以下簡單總結常用的語音質量評測方法。

  • 主觀評價:MOS[1], CMOS, ABX Test

  • 客觀評價

    • 有參考質量評估(intrusive method):ITU-T P.861(MNB), ITU-T P.862(PESQ)[2], ITU-T P.863(POLQA)[3], STOI[4], BSSEval[5]
    • 無參考質量評估(non-intrusive method)
      • 傳統方法
        • 基於信號:ITU-T P.563[6], ANIQUE+[7]
        • 基於參數:ITU-T G.107(E-Model)[8]
      • 基於深度學習的方法:AutoMOS[9], QualityNet[10], NISQA[11], MOSNet[12]

此外,有部分的方法,其代碼已開源:

此外,有一本書用來具體敘述評價語音質量:Quality of Synthetic Speech: Perceptual Dimensions, Influencing Factors, and Instrumental Assessment (T-Labs Series in Telecommunication Services)[13]。

[1] P.800.1 : Mean opinion score (MOS) terminology

[2] P.862 : Perceptual evaluation of speech quality (PESQ): An objective method for end-to-end speech quality assessment of narrow-band telephone networks and speech codecs

[3] P.863 : Perceptual objective listening quality prediction

[4] An algorithm for predicting the intelligibility of speech masked by An algorithm for predicting the intelligibility of speech masked by modulated noise maskers

[5] Latent Variable Analysis and Signal Separation: 14th International Conference, LVA/ICA 2018, Surrey, UK

[6] P.563 : Single-ended method for objective speech quality assessment in narrow-band telephony applications

[7] Kim D S. ANIQUE: An auditory model for single-ended speech quality estimation[J]. IEEE Transactions on Speech and Audio Processing, 2005, 13(5): 821-831.

[8] G.107 : The E-model: a computational model for use in transmission planning

[9] AutoMOS

[10] QualityNet

[11] MOSNet

[12] G. Mittag and S. Möller, "Non-intrusive Speech Quality Assessment for Super-wideband Speech Communication Networks,"ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Brighton, United Kingdom, 2019, pp. 7125-7129.

[13] Quality of Synthetic Speech: Perceptual Dimensions, Influencing Factors, and Instrumental Assessment (T-Labs Series in Telecommunication Services)

平均意見得分(Mean Opnion Score, MOS)主觀語音評測

MOS評測實際是一種很寬泛的說法。由於給出評測分數的是人類,因此可以靈活的測試語音的不同方面。比如在語音合成領域,常見的有自然度MOS(MOS of naturalness),相似度MOS(MOS of similarity)。在實時通訊領域,有收聽質量(Listening Quality)評價和對話質量(Conversational Quality)評價。但是人類給出的評分結果受到的干擾因素特別多,一般不同論文給出的MOS不具有非常明確的可比性,同一篇文章中的MOS才可以比較不同系統的優劣。谷歌在SSW10發表的Evaluating Long-form Text-to-Speech: Comparing the Ratings of Sentences and Paragraphs對若干種多行文本合成語音的評估方法進行了比較,在評估較長文本中的單個句子時,音頻樣本的呈現形式會顯著影響被測人員給出的結果。比如僅提供單個句子而不提供上下文,與相同句子給出語境相比,被測人員給出的評分結果差異顯著。

在實時通訊領域,國際電信聯盟(ITU)將語音質量的主觀評價方法做了標准化處理,代號為ITU-T P.800.1。其中收聽質量的絕對等級評分(Absolute Category Rating, ACR) 是目前比較廣泛采用的一種主觀評價方法。在使用ACR方法對語音質量評價時,參與評測的人員對語音整體質量進行打分,分值范圍為1-5分,分數越大表示語音質量最好。

音頻級別 MOS值 評價標准
4.0~5.0 很好,聽得清楚;延遲小,交流流暢
3.5~4.0 稍差,聽得清楚;延遲小,交流欠流暢,有點雜音
3.0~3.5 還可以,聽不太清;有一定延遲,可以交流
1.5~3.0 勉強,聽不太清;延遲較大,交流需要重復多遍
0~1.5 極差,聽不懂;延遲大,交流不通暢

一般MOS應為4或者更高,這可以被認為是比較好的語音質量,若MOS低於3.6,則表示大部分被測不太滿意這個語音質量。

MOS測試一般要求:

  1. 足夠多樣化的樣本(即試聽者和句子數量)以確保結果在統計上的顯著;

  2. 控制每個試聽者的實驗環境和設備保持一致;

  3. 每個試聽者遵循同樣的評估標准。

除了絕對等級評分,其它常用的語音質量主觀評價有失真等級評分(Degradation Category Rating, DCR)和相對等級評分(Comparative Category Rating, CCR),這兩種方式不僅需要提供失真語音信號還需要原始語音信號,通過比較失真信號和原始信號獲得評價結果(類似於ABX Test),比較適合於評估背景噪音對語音質量的影響,或者不同算法之間的直接較量。附語音合成論文中計算MOS的小腳本,其不僅強調MOS值,並且要求95%的置信區間內的分數:

# -*- coding: utf-8 -*-
# @Time    : 2019/4/30 13:56
# @Author  : MengnanChen
# @FileName: caculate_MOS.py
# @Software: PyCharm

import math
import numpy as np
import pandas as pd
from scipy.linalg import solve
from scipy.stats import t


def calc_mos(data_path: str):
    '''
    計算MOS,數據格式:MxN,M個句子,N個試聽人,data_path為MOS得分文件,內容都是數字,為每個試聽的得分
    :param data_path:
    :return:
    '''
    data = pd.read_csv(data_path)
    mu = np.mean(data.values)
    var_uw = (data.std(axis=1) ** 2).mean()
    var_su = (data.std(axis=0) ** 2).mean()
    mos_data = np.asarray([x for x in data.values.flatten() if not math.isnan(x)])
    var_swu = mos_data.std() ** 2

    x = np.asarray([[0, 1, 1], [1, 0, 1], [1, 1, 1]])
    y = np.asarray([var_uw, var_su, var_swu])
    [var_s, var_w, var_u] = solve(x, y)
    M = min(data.count(axis=0))
    N = min(data.count(axis=1))
    var_mu = var_s / M + var_w / N + var_u / (M * N)
    df = min(M, N) - 1  # 可以不減1
    t_interval = t.ppf(0.975, df, loc=0, scale=1)  # t分布的97.5%置信區間臨界值
    interval = t_interval * np.sqrt(var_mu)
    print('{} 的MOS95%的置信區間為:{} +—{} '.format(data_path, round(float(mu), 3), round(interval, 3)))


if __name__ == '__main__':
    data_path = ''
    calc_mos(data_path)

語音質量的感知評估(Perceptual evaluation of speech quality, PESQ)

PESQ在國際電信聯盟的標注化代號為ITU-T P.862。總的想法是:

  1. 對原始信號和通過被測系統的信號首先電平調整到標准聽覺電平,再利用IRS(Intermediate Reference System)濾波器模擬標准電話聽筒進行濾波;
  2. 對通過電平調整和濾波之后的兩個信號在時間上對准,並進行聽覺變換,這個變換包括對系統中線性濾波和增益變化的補償和均衡;
  3. 將兩個聽覺變換后的信號之間的譜失真測度作為擾動(即差值),分析擾動曲面提取出的兩個退化參數,在頻率和時間上累積起來,映射到MOS的預測值。

電平調整和時間對齊

  • 電平調整

    由於各個系統的增益不同,因此需要將原信號和被測信號二者調整到統一、恆定的響度。

    \(X(t)\)是原始信號的時域表示,而\(Y(t)\)\(X(t)\)通過被測系統后的輸出信號,兩者首先進行電平調整,將其統一到76 dB SPL(Sound Pressure Level)的能量水平。電平調整的流程:

    • 首先對參考信號\(X(t)\)和退化信號\(Y(t)\)進行帶通濾波:低於250Hz直接被過濾掉,在250Hz~2kHz之間不進行操作,高於2kHz采取衰減規則。
    • 計算全局電平調整因子。如最大最小歸一化,或者標准歸一化參考信號和退化信號,將其調整到同一能量級上。電平調整后輸出\(X_s(t)\)\(Y_s(t)\)
  • IRS濾波

    聽覺測試需要使用IRS(Intermeiate Reference System, 中間參考系統)濾波來對參考語音信號和退化信號進行濾波,這種濾波主要是模擬典型的電話手柄聽筒的頻率響應特性。仿IRS濾波的實現過程為:

    • 對整個語音文件進行FFT計算;
    • 在頻域,由具有與IRS接收濾波器相似的分段線性相應的濾波器濾波;
    • 對語音文件進行FFT反變換。

    通過IRS濾波系統后得到\(X_{IRSS}(t)\)\(Y_{IRSS}(t)\).

    時間對齊

    聽覺變換時利用快速傅里葉變換逐幀進行頻譜計算,然后再映射到感覺頻域和響度,計算PESQ得分需要的參數也是逐幀計算得到的。PESQ算法的時間對齊是對在原始輸入信號和退化輸出語音之間的一系列延時進行計算,每一個時間間隔內的延時與前一個具有明顯不同的時延值。在每一個時間間隔內,計算相應的起點和終點之間的時延,時間校准的原理就是,假設在同一個時間間隔內,原始語音和退化語音在相應的間隔內應該具有確定的時延值。PESQ算法采用了一種新的時間對齊算法,這種算法是基於包絡的延遲估計方法。

    感知模型

    感知模型在PESQ算法中用來計算PESQ得分,即原始信號和退化信號之間的差異。它是一個心理模型,能夠對客觀語音質量評估提供一個主觀MOS的預測值。PESQ可以映射到MOS刻度范圍,計算一般分為:聽覺變換,計算干擾密度,計算不對稱因子,擾動聚合,壞間隔重對齊,最終計算獲得PESQ得分。對於正規的主觀測試,得分在1.0~4.5之間。在退化嚴重時,得分可能會低於1.0,但這種情況很少見。

    客觀評測算法的有效性

    語音質量客觀評價方法的性能優劣,一般用語音質量的客觀MOS值和主觀MOS值之間的相關程度和絕對誤差作為評價的性能指標。兩者的相關程度可以采用Pearson系數加以描述:

    \[\rho=\frac{\sum_{i=1}^N(MOS_o(i)-\overline{MOS_o})(MOS_s(i)-\overline{MOS_s})}{\sqrt{\sum_{i=1}^N(MOS_o(i)-\overline{MOS_o})^2\sum_{i=1}^N(MOS_s(i)-\overline{MOS_s})^2}} \]

    其中,\(N\)為樣本數,\(MOS_s(i)\)是第\(i\)個樣本人類評判的MOS分值,\(MOS_o(i)\)是第\(i\)個樣本用客觀評估方法預測出的客觀MOS值。\(\overline{MOS_s}\)\(\overline{MOS_o}\)為兩者的算術平均值。相關性系數描述了主客觀評價的線性相關程度,相關系數越接近+1,客觀評測算法越准確。絕對誤差為:

    \[e_n=|MOS_o(i)-MOS_s(i)| \]

    其中,\(MOS_s(i)\)是第\(i\)個樣本人類評判的MOS值,\(MOS_o(i)\)是第\(i\)個樣本用客觀評估方法預測出的客觀MOS值。

客觀語音質量評估的單端方法P.563

P.563和PESQ最大的區別就是,P.563只需要經過音頻引擎傳輸后的輸出信號,不需要原始信號,直接可以輸出該信號的流暢度。因此,P.563的可用性更高,但是其准確性要比PESQ低。

P.563算法主要由三個部分組成:

  • 預處理;
  • 特征參數估計;
  • 感知映射模型

P.563將語音進行預處理后,首先計算出若干個最重要的特征參數,根據這些特征參數判斷語音的失真類型,失真類型直接決定了感知映射模型的系數和所使用的特征。利用感知映射模型(其實就是線性方程)計算得到最終的評價結果。

預處理

類似的,語音信號首先進行電平校准和濾波。P.563假設所有語音信號的聲壓級都是76dB SPL,並將輸入語音信號的電平值校准到-26dBov。P.563算法的所使用的濾波器分為兩類,第一類濾波器的頻率響應特性類似於上述的中間參考系統(IRS),第二類濾波器采用一個四階巴特沃斯高通濾波器,其截止頻率為100Hz且高頻響應曲線較為平緩,通過這類濾波器的語音信號可用於基音同步提取、聲道模型分析及信號電平和噪聲電平的計算。信號預處理的最后一部分是語音活動檢測(Voice Activity Detection, VAD),它以幀長4ms的信號功率為閾值,區分語音和噪聲。高於該閾值的為語音,否則為噪聲。該閾值時動態調整的,計算公式如下:

\[threshold=\overline{x_{noise}}-x\times \sqrt{\sum_{n=1}^N\frac{(x_{noise}(n)-\overline{x_{noise}})^2}{N}} \]

其中,

\[\overline{x_{noise}}=\sum_{n=1}^N\frac{x_{noise}(n)}{N} \]

表示第\(n\)幀噪聲信號的功率,N為噪聲幀的幀數。

閾值的初始值為所有幀長為4ms信號的平均功率。為了提高VAD的精度,對VAD的結果進行后處理:如果某一段話大於閾值但是長度小於等於12ms(3幀),則將信號判定為噪聲;如果兩段已經被判定為語音,但是它們的間隔小於200ms,則將這兩段語音合並為一整段語音。

特征參數提取

P.563算法在特征提取過程中利用人類的發聲和聽覺感知原理,不需要考慮通訊網絡相關的信息。P.563算法利用三個相互獨立的參數分析模塊對預處理后的語音信號提取特征:

  • 第一個模塊着眼於人類的聲音產生系統,通過對聲道建模,分析不自然變化造成的語音失真;
  • 第二個模塊主要用於原始語音信號重建,並分析失真語音信號中存在的噪聲,包括加性噪聲和信號包絡相關的乘性噪聲;
  • 第三個模塊定義並估計語音信號中的間斷、靜音、時域截斷等失真。

P.563算法共提取43個不同的特征參數,其中8個被稱作關鍵參數(Key Parameters)用於判斷語音的失真類型。

失真類型判決和結果映射

優先級最高的失真類型是背景噪音,它根據信號的信噪比(SNR)決定,背景噪音會嚴重影響語音質量,大部分含有背景噪音的語音MOS值一般在1~3范圍內。語音信號的間斷失真是指語音信號有靜音或中斷,即信號的電平值發生突變。乘性噪聲失真是指語音信號中與信號包絡有關的噪聲,該類失真僅出現在活動語音部分。語音的機械聲與語音的音調密切相關。優先級最低的失真類型是語音整體的不自然度,由於語音編解碼器的輸出質量和性別有關,P.563基於基音頻率將該失真類型分為男聲和女聲兩種情況。如下圖:

客觀評價結果的映射模型

在P.563中映射模型就是一個線性模型。P.563算法根據上述求出的失真類型對線性方程的系數設置了不同的值。每一種失真類型包括12個不同的語音特征,P.563首先根據待測語音的失真類型對這12個語音特征線性組合得到評價結果的中間值,再將中間值結合另外的11個特征參數得到最終的結果。

E-Model:基於傳輸網絡參數的無參考語音質量評估

E-Model和P.563一樣,不需要原始語音就可以給出當前的語音質量。但是E-Model連退化語音都不需要,只是根據當前的傳輸網絡,比如丟包率、延遲等給出當前的語音評估結果。

原始的E-Model(ITU-T G.107標准)定義十分繁雜,很難實現,因此出現了一批簡化的E-Model用於實際落地,如Monitoring VoIP call quality using improved simplified E-model

通過ITU-T G.107定義的E-Model,組合所有對語音質量有影響的因子計算出單一的指標R值,它可以直接映射為MOS值,因此E-Model已經成為工業和學術界評測語音質量的標准工具之一。

  1. 簡化版E-Model

    主要考慮的是編解碼器的質量和網絡情況。

    \[R=R_0-I_{codec}-I_{packet\_loss}-I_{delay} \]

    其中,\(R_0\)為基本信噪比,\(I_{delay}\)為端到端延遲,\(I_{delay}\)為編解碼因素,\(I_{packet\_loss}\)為窗口期內的丟包率。

    Chunlei Jiang and Peng Huang, “Research of Monitoring VoIP Voice QoS”, International Conference on Internet Computing and Information Services, 2011

  2. 改進簡化版的E-Model

    \[R=R_y-I_d+A \]

    其中,\(R_y\)為校正函數(由PESQ引入);\(I_d\)是指定時間內的平均時延參數;\(A\)是通信系統的預期優勢因素。

    • \(R_y\)是利用PESQ分數添加的校正二階函數:

    • \[ R_y=aR_x^2+bR_x+c \]

      其中,\(R_x\)為簡化版E-Model的一部分:

      \[R_x=R_0-I_e-I_{p.l}\tag{1} \]

      \(a、b、c\)依賴於編碼格式(如G.711中,\(a=0.18;b=-27.09;c=1126.62\),詳見Monitoring VoIP call quality using improved simplified E-model-TABEL I)。

      在公式1中,\(R_0\)為基本信噪比,噪音源如環境或房間噪聲,該參數難以計算,在ITU-T G.113提供了\(R_0\)的基本值,現實生活中最優信噪比為94.2,但是由於音頻信號轉換為網絡報文前后會有信息損失,因此\(R_0\)設置為93.2;\(I_e\)為編解碼因素,它表示編解碼對語音信號的損傷,G.113給出了一些常量值,如G.729A的\(I_e\)值為11,詳見Monitoring VoIP call quality using improved simplified E-model-TABLE II;\(I_{p.l}\)為特定時間內的丟包率。

    • \(I_d\)是平均時延參數,計算方式:\(I_d=0.024d+0.11(d-177.3)H(d-177.3)\)。其中,\(H(x)=0\ if\ x<0;H(x)=1\ if\ x>=0\);d為單向延遲,它是往返時延的一半(即\(d=\frac{RTT}{2}\)).

    • A其實是修正系數,與通信終端使用的網絡類型有關,如移動網絡A為5。詳見Monitoring VoIP call quality using improved simplified E-model-TABLE III

E-Model的R值和MOS值映射函數

E-Model計算獲得的R值分值范圍為0~100,其可以更為細粒度的刻畫語音質量,當然也可以直接和主觀分數MOS單射:

\[MOS= \left\{\begin{matrix} 1\quad R<0 & \\ 1+0.035R+7\times 10^{-6}R(R-60)(100-R)\quad 0\leq R\leq 100 & \\ 4.5\quad R>100 & \end{matrix}\right. \]

Assem H , Malone D , Dunne J , et al. Monitoring VoIP call quality using improved simplified E-model[C] Computing, Networking and Communications (ICNC), 2013 International Conference on. IEEE, 2013.

NISQA: 無參考語音通信網絡的語音質量

由於深度學習的火熱,也有部分人利用深度網絡評估語音質量。這類方法都比較簡單,由於使用的深度網絡可以自動進行特征提取,因此這類方法直接將梅爾頻譜系數或者MFCC直接送入模型即可。以NISQA為例。

如上圖,整個網絡結構十分簡單,對數梅爾系數分別送入CNN和計算MFCC,CNN實際輸出了幀級別的語音質量。為了使整個模型能夠對語音的整體質量進行評估,CNN輸出的結果和MFCC連接起來送入LSTM,以得到最終的MOS分。

其中,CNN的設計細節:

github/gabrielmittagNISQA

總結

語音質量評估對給予了語音一個定量指標,對語音質量的評價(Audio Quality Assessment)其實是一個多年以來得到了深入研究的問題。大致可以分為需要標准信號的無參考(Non-intrusive)和有參考(instrusive)方法。無參考語音質量評估在實時通訊領域出現了許多傳統和深度學習方法,但是在語音合成領域,成果其實是寥寥無幾的。有利用P.563做合成語音質量評估的嘗試:

Kraljevski I, Chungurski S, Stojanovic I, et al. Synthesized speech quality evaluation using itu-t p. 563[J]. 2010.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM