欢迎光临“声音身份证照相馆”。你不必排队,不用摆姿势,只需对着麦克风说上三十秒话,店员就能把这段流动的声音拍成一张独一无二的“声音身份证”——这就是声纹。人的指纹是皮肤上的纹路,声纹则是藏在嗓音里的纹路:声带的长短、口腔的共鸣、发音的习惯,共同织成了一张只属于你的声音地图。照相馆的活儿,就是把这张地图从一声声话语里提取出来,变成可存储、可比对的数字特征。这门技术叫声纹特征提取,是整个声纹识别系统的“证件照拍摄环节”。本文会带你从拍照台走起:先认识声纹究竟是什么,再看摄影师如何用连拍手法定格声音,接着看老派画师 i-vector 如何把声音浓缩成低维画像,AI 新秀 d-vector 又如何直击灵魂,最后看看怎样检验照片拍得合不合格。整段旅程全程用生活常识包装,零基础也能轻松跟上。

岗位关联

掌握声纹特征提取,是进入说话人识别领域的必修课。它让你从“听到声音”进化到“看懂人”,是声纹产品落地时最具含金量的一环。

目录
  1. 可视化演示
  2. 声纹基本概念
  3. 声学特征提取
  4. 经典i-vector
  5. 深度d-vector
  6. 完整提取流程
  7. 系统评价指标
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

声纹特征流水线 VAD去静音→分帧加窗 Mel频谱→嵌入向量 音频→帧级特征→段级嵌入 从语音信号提取说话人身份特征

声纹基本概念

照相馆开业第一天,老板老李贴出告示:“本店为每位客人制作专属声音身份证。”客人好奇地问:声音又不是墨水,怎么能印成卡片?老李笑着指指耳朵:“你听双胞胎说话,闭着眼也能分出谁是谁——因为声音天生就带着主人的签名。”这个“签名”就是声纹(voiceprint):一道藏在语音里的个人烙印。它不像指纹需要按在纸上,只要你一开口,它就跟着声音跑出来。

专业地讲,声纹是语音信号中承载的说话人个性信息,源自发声器官的生理差异,如声带长短、声道形状,也来自后天习惯,如语速、口音、停顿方式。提取声纹特征,就是从一段语音中把这些“个性”抽出来,凝成一组数字特征向量。有了特征向量,系统就能回答两个问题:这是不是某个人?这是哪个人?

这两个问题对应两种任务。说话人确认(Speaker Verification)是 1:1 比对——像安检口核对身份证,你说“我是张三”,系统把你的声音特征和库里张三的特征比,得分越过阈值就放行。说话人辨认(Speaker Identification)是 1:N 寻找——像在通缉相册里翻找一张脸,系统把声音和库中 N 个人的特征逐一比对,挑出最匹配的那个。判定逻辑可以写成:

回到照相馆,确认任务就像“核验身份证原件”:你把声音递到窗口,柜台师傅对照库里你的照片,说声“像,请进”。辨认任务则像“大海捞针找通缉犯”:师傅翻遍整个相册,找出和你的声音最像的那一张。不管哪种任务,前提都是先拍好一张清晰的声音证件照——这正是接下来要讲的流程。

判定(s)={接受,s≥θ拒绝,s<θ\text{判定}(s) = \begin{cases} \text{接受}, & s \ge \theta \\ \text{拒绝}, & s < \theta \end{cases}
一句话版:把相似度得分 s 和预先设好的安全线 θ 比大小,过线就通过,没过就拒绝。
  1. 判定规则分支整个决策是一个二选一开关,得分越线则确认身份,否则拦截,逻辑清晰且可调。
    s≥θs \ge \theta
  2. 相似度得分 s由两个特征向量通过余弦相似度算出的标量,值越接近 1 代表两个声音越像。
    s=w1⋅w2∥w1∥ ∥w2∥s = \frac{w_1 \cdot w_2}{\|w_1\| \, \|w_2\|}
  3. 安全阈值 θ由系统根据业务风险预设的拦截线,调高则更严格,低则更宽松。
    θ∈(0,1)\theta \in (0, 1)

声学特征提取

客人问老李:“声音是看不见摸不着的,你怎么拍照?”老李举起一支特制镜头:“先拍'五官',再拼'脸部结构'。”他解释,人耳对声音的感知不是线性的——低频要细心听,高频粗粗带过。所以摄影师要准备一根“符合人耳的标尺”,把物理频率翻译成人耳听得懂的“梅尔刻度”。

这就是声学特征提取的起点。语音信号先经过预加重:像摄影时给人脸补一道侧光,把高频细节描深一点,补偿发音过程中高频能量的自然衰减,公式为:

打完底稿,就进入招牌动作——分帧加窗。声音是流动的,但特征在短时间里近似不变,于是把连续语音切成 20 到 30 毫秒的“帧”,帧与帧之间留出约 10 毫秒重叠,再用汉明窗压住帧边缘的突变,等于给每张“快照”加了柔焦边框。接下来提取 MFCC(梅尔频率倒谱系数):先做快速傅里叶变换得到频谱,再用梅尔标度映射人耳感知频域:

老李收起镜头,递出一摞“五官快照”:有的量“眼间距”,有的测“下巴弧度”——MFCC 就是这套标准化测量。但客人的声音是流动的,上万张快照没法直接印成一张身份证。摄影师还差一步:如何把这一大摞快照浓缩成一张“标准像”?老李说,别急,找画师帮忙。

y(t)=x(t)−αx(t−1)y(t) = x(t) - \alpha x(t-1)
一句话版:物理频率 f 每升高一点,人耳感受到的“梅尔频率”增量就小一点——这就是人耳对高频不敏感的对数特性。
  1. 梅尔频率 f_mel把物理赫兹翻译成人耳感知的“梅尔”,低频段拉伸、高频段压缩,贴合听觉规律。
    mel=2595×log⁡10(1+f700)\text{mel} = 2595 \times \log_{10}\left(1 + \frac{f}{700}\right)
  2. 对数压缩以 10 为底的对数把宽动态范围的频谱能量压到人耳可分辨的维度,模拟响度感知。
    log⁡10(⋅)\log_{10}(\cdot)
  3. 参考频率 f/700以 700Hz 作为基准,保证在低频段近似线性、高频段近似对数增长。
    f/700f / 700

经典i-vector

老李请来一位老派画师,外号“i-vector“。他的绝活是先用一本《大众脸谱》打底——这本厚册子记录了所有人的平均长相,专业名称叫 GMM 通用背景模型(UBM)。然后,画师对顾客说:”在我心里,每个人的脸都能用几十个基本脸型拼出来,我只需要记下你占每个脸型多少比例。”

这就是 i-vector 的思想:先训练一个通用背景模型,捕获“一般人说话”的共性;再针对某个人的一段语音,统计他的声学特征在每个高斯分量上的偏移;最后用一个低维的总变化因子 w 来解释这些偏移。于是每个人的声音被压缩成一个几百维的向量,这就是 i-vector。它把“上千帧 MFCC + 超多的统计量”压缩成一张轻便的“拼图配方卡”,是经典说话人识别系统的中流砥柱。

把流程化成数学,就是 i-vector 方程:

其中 M 是说话人的超向量(把帧级统计量拼成的高维列向量),m 是 UBM 的超向量(《大众脸谱》),T 是全局差异空间矩阵(从训练语料里学到的“基本脸型组合方式”),w 就是 i-vector——那个浓缩的“拼图配方”。

画师忙活完,递上一张极简的“配方卡”:i-vector。它不像 MFCC 那样一大摞快照,而是轻便、可存、可比对。老李把它挂在柜台,和顾客之前存的照片摆在一起,比对时就轻松多了。不过,老派画师手艺虽好,碰上新环境(跨信道、噪声大)时配方容易失真。于是,照相馆又迎来了一位新画师。

M=m+TwM = m + T w
一句话版:每个人的声音画像 = 大众平均脸 + 一组“基本脸型”按个人配方的组合。配方 w 就是我们要提取的声纹特征。
  1. 超向量 M把语音的帧级统计量(均值等)拼成高维列向量,相当于“完整脸型的数字化清单”。
    M∈RDM \in \mathbb{R}^{D}
  2. 均值超向量 m通用背景模型的超向量,代表普通人的平均发音,是拼图的“底纸”基线。
    m∈RDm \in \mathbb{R}^{D}
  3. 全局差异矩阵 T训练时学到的一组低维基向量,规定了“脸型可以如何变化”、变化方向是什么。
    T∈RD×KT \in \mathbb{R}^{D \times K}
  4. 总变化因子 w这就是 i-vector 本体,维数 K 远小于 D,是说话人独有的“配方比例”。
    w∈RK, K≪Dw \in \mathbb{R}^{K}, \ K \ll D

深度d-vector

新画师是个 AI 青年,外号“d-vector“。他不看《大众脸谱》,也懒得记配方,只说:”我直接看你的神态,给你画一张灵魂简笔画。“他训练时见过成千上万张不同人的脸,知道哪些细节算”这个人独有的特质”。老李将信将疑,让他试一张——结果画得又快又传神。

d-vector 是深度学习的产物:用一个深度神经网络(DNN)去学习说话人特征。训练时,把大量说话人的语音帧输入网络,网络的任务是判断“这句话是谁说的”。为了完成这个任务,网络被迫在中间层学会一种紧凑的说话人表示——这个中间层的输出向量,就是 d-vector。它完全由数据驱动地“悟”出什么特征最区分人,不需要人工设计“五官测量表”。

网络的最后一层是 softmax 分类,输出属于每个说话人的概率:

训练时用交叉熵损失让网络把每个说话人分对。训练完成后,去掉分类层,把某段语音喂进去,取倒数第二层的输出,便是这段语音的说话人嵌入向量 d-vector。判定两人是否是同一人,用余弦相似度即可。

AI 画师的“灵魂简笔画”(d-vector)见效奇快,尤其面对嘈杂环境、陌生信道时,比老画师(i-vector)更耐造。老李把两种画法都留在店里:老派适合小数据冷启动,AI 派适合大数据大场景。但对顾客来说,不管哪条路,照相馆里还有一套“一条龙流程”等着他们。

P(ck∣x)=ezk∑j=1KezjP(c_k \mid x) = \frac{e^{z_k}}{\sum_{j=1}^{K} e^{z_j}}
一句话版:softmax 把网络对每个说话人的“好感度”变成概率,训练逼着网络学会区分人,中间层的输出就成了会认人的“简笔画”。
  1. 网络得分 z_k最后一个全连接层为每个说话人算出一个得分,得分越高,网络越倾向认为是该说话人。
    zk=Wk⋅h+bkz_k = W_k \cdot h + b_k
  2. softmax 概率化把得分转换成和为 1 的概率分布,训练时用它与真实标签计算误差,推动网络学习。
    P(ck∣x)=ezk∑j=1KezjP(c_k \mid x) = \frac{e^{z_k}}{\sum_{j=1}^{K} e^{z_j}}
  3. 嵌入向量 u倒数第二层隐藏层输出,即 d-vector,是网络学到的低维说话人“简笔画”。
    u=h(x)u = h(x)
  4. 余弦相似度比对两个嵌入向量夹角的余弦,值越接近 1 代表越像同一人,常用于确认任务。
    score(u,v)=u⋅v∥u∥ ∥v∥\text{score}(u, v) = \frac{u \cdot v}{\|u\| \, \|v\|}

完整提取流程

老李把照相馆的动线画成一张流程图贴墙上:进门先“调光洁面”(语音预处理),再“取景按快门”(分帧提特征),最后“合成证件照”(特征汇总)。顾客走完这三步,才能领到自己的声音身份证。

从工程视角看,声纹特征提取的完整流水线包含三个环节:语音预处理、有效语音提取(VAD,Voice Activity Detection)、特征汇总拼接。预处理负责去除直流偏置和背景噪底、做预加重补高频;VAD 则用能量和过零率判断“哪段是人声、哪段是沉默”,把静音帧剔除,省得像对着空气拍照——空气帧混进特征里,等于往证件照里 P 进了路人。

VAD 之后,剩下有效语音帧,每帧提取 MFCC,再把帧级特征汇总成话语级特征。最常见的汇总方式是均值池化——把所有帧的特征取平均,作为这一句话的“平均脸”:

更高级的做法是拼接统计量(均值加标准差)或直接用 i-vector / d-vector 做话语级建模。最后对特征做 L2 归一化,消除录音音量大小带来的偏差。

顾客对照流程图走了一遍:领到“干净嗓音”(预处理),挑出“人声片段”(VAD),按脸型组合打包成证件照(特征汇总)。老李提醒:照片拍得好不好,嘴上说了不算。店里还定了“质检标准”,每一张证件照都要过评分关卡,这就是最后一课。

xˉ=1T∑t=1Txt\bar{x} = \frac{1}{T} \sum_{t=1}^{T} x_t
一句话版:把成百上千帧的“五官快照”平均成一张“平均脸”,再统一调节照片亮度,得到稳定的证件照特征。
  1. T 帧总数有效语音包含的帧数,静音帧剔除后 T 更有代表性,特征更干净。
    T=帧计数T = \text{帧计数}
  2. 均值池化按每一维分别求平均,把“一整段话”压缩成一条话语级特征向量。
    xˉd=1T∑t=1Txt,d\bar{x}_d = \frac{1}{T} \sum_{t=1}^{T} x_{t,d}
  3. L2 归一化把特征向量的模长统一为 1,消除音量差异对相似度计算的影响。
    x^=x∥x∥\hat{x} = \frac{x}{\|x\|}

系统评价指标

老李在门口摆了三台“声音安检门”,测试自家证件照的质量。第一台太松,陌生人也能混过去;第二台太严,回头客也被拦在门外;第三台不紧不松,恰到好处。怎么用数字描述这三台门的水平?这就用到了评价指标。

声纹系统最常见的指标是识别准确率——辨认任务中判断正确的比例。但对确认任务,光看准确率不够,因为系统有“误放行”(假接受)和“误拦截”(假拒绝)两种错误,而且往往此消彼长:门松了,误放行增多;门严了,误拦截增多。行业里用等误率 EER 把两种错误压到平衡点来评价系统。

设阈值为 τ,假接受率 FAR 和假拒绝率 FRR 都随 τ 变化。EER 就是两者相等的点:

EER 越低,说明系统越“眼毒”:既能识破冒名者,又不冤枉本人。此外,DET 曲线把 FAR 和 FRR 画在两条轴上,曲线越贴近原点,系统越好。工程验收时还会给出特定工作点,比如 FAR = 1% 时 FRR 是多少。

老李用 EER 挑出了最靠谱的安检门,贴在店里当“质检章”。至此,顾客在照相馆的旅程完整了:认识声纹、拍五官快照、老派画师配方、AI 画师简笔、一条龙冲印、质检把关。这个故事也指向声纹产品的核心——声纹特征提取正是所有声纹识别系统的“第一张照片”,有了它,后面的识别与比对才有根基。

PFA(τ∗)=PFR(τ∗)=EERP_{FA}(\tau^*) = P_{FR}(\tau^*) = \text{EER}
一句话版:EER 是“误放行率”和“误拦截率”刚好相等时的错误率,是衡量声纹系统“眼神好不好”的公平标尺。
  1. 假接受率 P_FA冒名者被放行的比例,门越松它越高,代表系统“太好骗”。
    PFA(τ)=冒名者被接受数冒名者测试总数P_{FA}(\tau) = \frac{\text{冒名者被接受数}}{\text{冒名者测试总数}}
  2. 假拒绝率 P_FR本人被拦截的比例,门越严它越高,代表系统“太保守”。
    PFR(τ)=本人被拒绝数本人测试总数P_{FR}(\tau) = \frac{\text{本人被拒绝数}}{\text{本人测试总数}}
  3. 等误率 EER两条曲线交点对应的错误率,是系统固有辨识力的标尺,与阈值选择无关。
    EER=PFA(τ∗)=PFR(τ∗)\text{EER} = P_{FA}(\tau^*) = P_{FR}(\tau^*)

AI 应用场景

银行电话客服身份核验

阶段:说话人确认(1:1 验证)

解决的问题:传统电话银行业务靠身份证号加密码验证身份,密码可能被破解或遗忘,且无法证明“电话那头就是本人”。声纹确认把客户的声音当成“声音身份证”,在通话中自然完成核验,无需额外记忆,还能有效拦截盗用。

具体案例:某大型银行在手机银行 App 的“语音客服”入口部署声纹确认系统。客户拨打客服热线并说出固定语句,系统实时提取 d-vector,与库里预留的声纹模型做余弦相似度比对,得分超过阈值即放行。上线后,高风险交易的人工复核成本下降了约 30%,客户也免去了反复输密码的麻烦。

智能音箱多用户听音识别

阶段:说话人辨认(1:N 搜索)

解决的问题:家里多人共用一台智能音箱,传统做法是每次手动切换账号,体验割裂。声纹辨认让音箱“听声识人”,自动切换到对应家庭成员的偏好设置,实现无感个性化服务。

具体案例:某智能音箱厂商在设备端嵌入轻量级 d-vector 模型。当家庭成员说“播放我喜欢的歌”时,音箱先把语音经过 VAD 和特征提取得到 d-vector,再与家庭库中 4 个成员的声纹比对,选出最匹配的账号。识别成功后自动播放该成员收藏列表,准确率在安静客厅环境下超过 95%。

公安刑侦录音比对

阶段:说话人辨认 + 证据评估

解决的问题:刑侦中经常遇到匿名电话、勒索录音,传统人工听辨耗时长、主观性强。声纹特征提取把嫌疑语音转成 i-vector 或 d-vector,再与嫌疑人录音库批量比对,快速筛查出可能的说话人,为侦查提供线索。

具体案例:某市公安局在电信诈骗案中拿到一段 40 秒的勒索电话录音,系统提取声纹特征后在 5 万人的重点人员库中检索,Top 10 命中率进入人工复核范围,最终协助锁定嫌疑人。后续法院采信时,声纹鉴定报告还会附上 EER 与似然比指标,说明比对结论的可信度。

Python 演示

python62 行
import numpy as np  def pre_emphasis(signal, alpha=0.97):    """预加重: 强化高频细节, 相当于给声音照片补光"""    return np.append(signal[0], signal[1:] - alpha * signal[:-1])  def framing(signal, frame_size=0.025, frame_shift=0.010, sr=16000):    """分帧加窗: 把长音频切成短帧"""    frame_len = int(frame_size * sr)    hop = int(frame_shift * sr)    frames = [        signal[i:i + frame_len]        for i in range(0, len(signal) - frame_len + 1, hop)    ]    return np.array(frames)  def extract_signature(audio):    """简化声纹特征: 分帧 + 频谱能量 + 均值池化"""    audio = pre_emphasis(audio)    frames = framing(audio)    spectrum = np.abs(np.fft.rfft(frames, axis=1))    spectral = np.mean(spectrum[:, ::4], axis=0)    energy = np.mean(spectrum, axis=1)    return np.append(spectral, [np.mean(energy), np.std(energy)])  def cosine_score(vec1, vec2):    """余弦相似度: 照片比对机"""    norm = np.linalg.norm(vec1) * np.linalg.norm(vec2) + 1e-8    return float(np.dot(vec1, vec2) / norm)  def generate_speaker(seed):    """模拟一位说话人的音频信号"""    rng = np.random.RandomState(seed)    sr = 16000    t = np.arange(sr)    voice = (np.sin(2 * np.pi * (120 + seed * 13) * t / sr) *             np.exp(-t / (sr * 0.6)) * 0.6)    noise = 0.08 * rng.randn(sr)    return voice + noise  def verify_speaker(enroll_audio, test_audio, threshold=0.8):    """说话人确认: 判定测试语音是否属于登记人"""    enroll_vec = extract_signature(enroll_audio)    test_vec = extract_signature(test_audio)    score = cosine_score(enroll_vec, test_vec)    return score >= threshold, score  if __name__ == "__main__":    speaker_a_enroll = generate_speaker(1)    speaker_a_test = generate_speaker(1)    speaker_b_test = generate_speaker(2)    ok1, s1 = verify_speaker(speaker_a_enroll, speaker_a_test)    ok2, s2 = verify_speaker(speaker_a_enroll, speaker_b_test)    print("same person score: %.4f -> %s" % (s1, "PASS" if ok1 else "REJECT"))    print("different person score: %.4f -> %s" % (s2, "PASS" if ok2 else "REJECT"))
目的:用 NumPy 实现一个极简的“声纹特征提取 + 说话人确认”流程,模拟两名说话人并验证同一人通过、不同人拒绝。
  1. def extract_signature(audio):把一段音频变成一条声纹特征,是代码里的“声音身份证拍照”核心函数。
  2. audio = pre_emphasis(audio)先预加重补高频,对应照相馆里的“补侧光”步骤。
  3. frames = [signal[i:i + frame_len] for i in range(...)]分帧加窗,把长音频按窗口切成短帧。
  4. spectrum = np.abs(np.fft.rfft(frames, axis=1))对每帧做频谱变换,获得“五官轮廓”。
  5. return np.append(spectral, [np.mean(energy), np.std(energy)])均值池化拼接特征,得到话语级“证件照”。
  6. def cosine_score(vec1, vec2):余弦相似度“比对机”,算两个特征向量的夹角相似度。
  7. np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2) + 1e-8)点积除以模长之积,加小常数防止除零。
  8. voice = (np.sin(...) * np.exp(...) * 0.6)用正弦波乘指数衰减模拟一段带音调的人声。
  9. ok1, s1 = verify_speaker(speaker_a_enroll, speaker_a_test)做一次“登记语音 vs 测试语音”的 1:1 核验。

常见误区

误区语音识别能把声音变成文字,那声纹识别应该也差不多,就是更高级的“把声音变成文字”吧?

正解两者认的对象完全不同。语音识别认的是“你说了什么”(内容),声纹识别认的是“你是谁”(身份)。打个比方:语音识别像“听写员”,把话抄成文字;声纹识别像“看门大爷”,听声辨人。两条技术线在特征设计、模型选择上差异巨大,混为一谈会把系统需求搞错。

为何常见:两者都处理语音信号,输入都是音频,初学者很容易从“输入一样”推导出“任务差不多”。

误区声纹特征提取不就是算 MFCC 吗?把 MFCC 存下来就是声音的身份证了。

正解MFCC 只是“五官快照”——帧级声学特征,描述这一小段声音的音色轮廓。声纹特征(如 i-vector、d-vector)是话语级的说话人表示,要把几百上千帧 MFCC 汇总、压缩后得到“证件照”。直接拿 MFCC 序列去比对,既冗长又易受情绪和信道干扰,工程上没人这么干。

为何常见:教程里总是先教 MFCC,而且它也叫“特征”,容易被误认为就是声纹特征本体。

误区i-vector 是十年前的经典方法,现在都该用深度学习,老方法已经过时了。

正解i-vector 在小数据、短语音、弱算力场景下依然很香,而且可解释性强;d-vector 等深度嵌入在数据量充足时通常效果更好,尤其对噪声和信道变化鲁棒。选哪个取决于数据规模、计算资源和场景约束,而不是“越新越好”。很多工业系统至今仍在用 i-vector 做冷启动,再用深度模型迭代。

为何常见:深度学习宣传多,让人误以为经典方法毫无价值,忽略了它在小样本场景下的稳定表现。

误区给模型堆更多录音,识别率就会一直涨,不用管录音环境是什么样的。

正解声纹模型不仅看数据量,更看数据多样性——性别、年龄、口音、信道、噪声要均衡。如果全是安静办公室里录的电话语音,模型到嘈杂商场就失灵。就像只见过证件照的保安,到夜店灯光下就认不出客户。数据集的领域匹配度往往比原始数据量更重要。

为何常见:深度学习时代“数据为王”的说法被过度简化,忽略了领域漂移和分布不匹配问题。

误区VAD 就是去掉静音,少几十帧而已,对最终特征影响不大,工程上可以省略。

正解VAD 并非可有可无。嘈杂环境里的静音帧和噪声帧混入统计池化,会严重污染话语级特征——相当于往证件照里 P 进了路人。工程经验表明,VAD 做得好,系统 EER 能明显下降,尤其在远场拾音、多人说话的场合里至关重要。

为何常见:安静录音的实验环境让 VAD 的功劳被掩盖,初学 demo 不跑 VAD 也能出结果,造成“没用”的错觉。

面试题

Q1. 声纹识别的核心任务是识别什么?

单选题 · easy

  • A.说话内容文本
  • B.说话人的身份← 正确答案
  • C.说话时的情绪
  • D.说话人的语种

答案:B。声纹识别认的是“人”,像看门大爷听声辨人;语音识别才认“字”。选项 A 属于语音识别,C 属于情感识别,D 属于语种识别,都与声纹识别目标不同。

Q2. 说话人确认(Verification)最接近下面哪个场景?

单选题 · easy

  • A.在相册里找出最像的人
  • B.安检口核对身份证真伪← 正确答案
  • C.通过口音判断老家在哪
  • D.把语音实时转成字幕

答案:B。确认是 1:1 比对,把当前声音和“自称身份”的模板比,过阈值放行,正是安检核验身份证的逻辑。A 是 1:N 辨认,C 是口音识别,D 是语音识别。

Q3. MFCC中梅尔刻度主要模拟了什么?

单选题 · mid

  • A.麦克风的灵敏度曲线
  • B.人耳的非线性听觉特性← 正确答案
  • C.声带的振动频率范围
  • D.房间回声的衰减曲线

答案:B。梅尔刻度把物理频率映射到人耳感知域,低频敏感、高频迟钝,模拟的是人耳的非线性听觉。麦克风、声带、房间回声都与梅尔刻度的设计动机无关。

Q4. i-vector方程 M = m + Tw 中,w 表示什么?

单选题 · mid

  • A.通用背景模型的均值超向量
  • B.全局差异空间的投影矩阵
  • C.说话人的低维总变化因子← 正确答案
  • D.说话人的高维帧级特征

答案:C。w 是低维总变化因子,即 i-vector 本体,描述个体相对平均模型的偏移。m 是 UBM 均值超向量,T 是全局差异矩阵,M 是高维超向量,均与 w 的角色不同。

Q5. 相比i-vector,d-vector最主要的特点是?

单选题 · hard

  • A.需要UMB做背景建模
  • B.用于语音识别和转写
  • C.由深度网络自动学习表示← 正确答案
  • D.完全不需要任何训练数据

答案:C。d-vector 由深度神经网络在分类任务中自动学到嵌入表示,无需人工设计统计量。i-vector 才依赖 UBM 做背景建模,B 是语音识别任务,D 违反常识——深度模型同样需要大量训练数据。

Q6. 声纹特征提取流水线通常包含哪些环节?

多选题 · mid

  • A.语音预处理和去噪← 正确答案
  • B.端点检测VAD去静音← 正确答案
  • C.分帧后提取帧级特征← 正确答案
  • D.文字转写与语义分析

答案:ABC。预处理、VAD、分帧提特征正是流水线三环节。文字转写属于语音识别任务,与声纹特征提取无关,因此 D 不选。

Q7. 预加重在声纹特征提取中的作用是什么?

单选题 · easy

  • A.降低录音环境中的噪声
  • B.提升高频段的信号能量← 正确答案
  • C.把模拟信号转成数字信号
  • D.把左右声道合并成单声道

答案:B。人在发声时高频能量自然衰减,预加重用差分方式补偿高频,像给照片补光。降噪是滤波器的事,ADC 负责模数转换,声道合并是通道预处理,都与预加重目的不同。

Q8. 等误率EER的含义是?

单选题 · hard

  • A.系统精确率达到百分之百
  • B.假接受率与假拒绝率相等点← 正确答案
  • C.训练集上损失函数的终值
  • D.辨认任务中被识别的数量

答案:B。EER 是 FAR 与 FRR 相等时的错误率,是声纹系统辨识力的公平标尺。它不是准确率、不是损失值、也不是识别数量,选 B 才符合定义。

Q9. 关于端点检测VAD,下列说法正确的是?

多选题 · mid

  • A.它能过滤掉静音帧和噪声帧← 正确答案
  • B.它有助于提升话语级特征质量← 正确答案
  • C.它会把音频自动切分为句子
  • D.它在嘈杂环境下尤为重要← 正确答案

答案:ABD。VAD 负责区分人声与静音/噪声,剔除无效帧后特征更干净,嘈杂环境下作用更明显。它不做句法切分,因此 C 错误。

Q10. 余弦相似度在声纹比对中数值接近1表示?

单选题 · mid

  • A.两条语音完全不同
  • B.两个特征向量方向一致← 正确答案
  • C.两个向量都归一化为零
  • D.语音内容完全一模一样

答案:B。余弦相似度衡量两个特征向量的夹角,接近 1 表示方向几乎一致,即声音特征很相似。A 恰好相反,C 归一化为零会导致相似度无意义,D 混淆了“声音内容”与“说话人身份”。