1. 语音处理介绍

1.1 什么是语音处理?

语音处理就是让机器 “听懂、会说” 人类语言,和我们用耳朵听、嘴巴说的逻辑一样:

听:把声音信号转成文字 / 指令(语音识别 ASR)

说:把文字 / 指令转成声音信号(语音合成 TTS)

举个生活化例子:

你对手机说 “小艺小艺,明天早上 8 点叫我起床”,手机听懂并设置闹钟 → 这是语音识别

手机用语音回复 “好的,已为您设置明天 8 点的闹钟” → 这是语音合成

智能音箱播放你点的歌、车载系统帮你导航,背后都是语音处理技术。

类比理解:

语音处理就像 “同声传译”,一边把 “声音” 翻译成 “机器能懂的信息”,一边把 “机器的信息” 翻译成 “人能听的声音”。

1.2 语音处理的核心分支

  1. 语音识别(ASR):Audio → Text
    • 目标:把人的语音转成文字,比如微信 “语音转文字”、会议录音转写。
    • 场景:语音助手、字幕生成、智能客服、车载交互。
  2. 语音合成(TTS):Text → Audio
    • 目标:把文字转成自然流畅的语音,比如有声书、导航播报、AI 客服语音。
    • 场景:有声阅读、虚拟主播、智能客服、无障碍播报。
  3. 语音增强:Noise → Clean Audio
    • 目标:去除噪音、回声,让语音更清晰,比如打电话时降噪、直播时去回声。
    • 场景:通话降噪、录音修复、直播去噪。
  4. 说话人识别:Audio → Speaker ID
    • 目标:识别 “是谁在说话”,比如手机语音解锁、会议发言人分离。
    • 场景:声纹解锁、身份验证、会议分角色转写。
  5. 情感识别:Audio → Emotion
    • 目标:识别语音里的情绪(开心 / 生气 / 难过),比如客服判断用户情绪、AI 陪伴。
    • 场景:智能客服情绪安抚、心理监测、互动娱乐。

1.3 语音 vs 文本:核心差异

语音和文本都是语言载体,但差异很大,这也是语音处理更难的原因:

连续性:语音是连续的波形,文字是离散的字符。比如 “你好” 在语音里是一段连续的声音,在文字里是两个字。

模糊性:语音有口音、语速、语气、噪音干扰,比如 “四” 和 “十” 在方言里发音几乎一样,文字里不会混淆。

时效性:语音是实时流,需要边听边处理;文字可以慢慢读。

信息量:语音包含语气、语速、情感等信息,文字只有字面意思。

类比:

语音就像 “手写潦草的便签”,有连笔、涂改、污渍,需要仔细辨认;

文本就像 “打印好的文档”,清晰规整,容易读取。


2. 语音预处理基础

2.1 语音信号的本质:声波的数字化

我们说话时,声带振动产生声波(空气振动),麦克风把声波转成电信号,再转成数字信号(一串数字),这就是语音信号的本质。

模拟信号:连续的波形,比如你说话时的声音振动,像波浪一样连绵不断。

数字信号:把模拟信号按固定时间间隔 “采样”,转成一串数字,比如每秒钟采 16000 次,得到 16000 个数字。

生活化类比:

模拟信号就像 “一条连续的绳子”,数字信号就像 “把绳子剪成一小段一小段,每段标上长度”。

2.2 语音信号的核心参数

  1. 采样率(Sample Rate):每秒采样多少次,单位 Hz。
    • 常见值:8kHz(电话)、16kHz(语音识别)、44.1kHz(音乐)。
    • 采样率越高,声音越清晰,但数据量越大。比如 16kHz 就是每秒采 16000 个点。
    • 类比:采样率就像 “拍照的帧率”,帧率越高,视频越流畅,文件越大。
  2. 采样位数(Bit Depth):每个采样点用多少位二进制表示,常见 16 位。
    • 16 位能表示2^16=65536个不同的音量值,足够表达人耳能听到的声音。
    • 类比:采样位数就像 “照片的色深”,色深越高,颜色越丰富。
  3. 声道数(Channels):单声道 / 立体声。
    • 语音处理一般用单声道,因为不需要立体声信息,数据量更小。
    • 类比:单声道就像 “一只耳朵听”,立体声就像 “两只耳朵听”,能分辨方向。

2.3 语音预处理的核心步骤

预处理就是 “给语音‘洗脸’”,去除噪音、标准化格式,让模型更容易学习。

2.3.1 格式标准化

统一采样率:把不同采样率的语音转成模型需要的(比如 16kHz)。

统一采样位数:转成 16 位。

统一声道:转成单声道。

归一化音量:把音量调整到统一范围,避免有的声音太大、有的太小。

例子:你收集了一段 44.1kHz 立体声的录音,预处理后转成 16kHz 单声道,音量标准化,方便模型训练。

2.3.2 预加重(Pre-emphasis)

目的:提升高频部分的能量,因为语音的高频部分容易衰减,让高频信息更明显。

实现:用一个简单的滤波器 y(n) = x(n) - α*x(n-1)(α 通常取 0.95~0.97)。

类比:就像你把声音里的 “高音部分” 调大一点,让机器更容易听到。

2.3.3 分帧(Framing)

语音是连续的,但模型处理需要 “小块”,所以把语音切成(Frame):

每帧长度:20~30ms(比如 25ms),因为 20~30ms 内语音的特征基本稳定。

帧移:10~15ms(比如 10ms),相邻帧有重叠,避免切断语音信息。

类比:就像你把一段长视频,切成 25 秒的小片段,每段和下一段重叠 10 秒,保证内容连贯。

2.3.4 加窗(Windowing)

分帧后,帧的边缘会有 “discontinuity”(不连续),需要加窗函数平滑边缘:

常用窗函数:汉明窗(Hamming Window),让帧的中间部分权重更高,边缘部分权重更低。

类比:就像你给照片加个渐变边框,让边缘过渡更自然,避免生硬。

2.3.5 去噪与回声消除

去噪:去除背景噪音(比如空调声、马路声),常用谱减法、维纳滤波、深度学习方法。

回声消除:去除麦克风采集到的扬声器回声(比如你打电话时,自己的声音从对方手机传回来)。

类比:就像你用 PS 把照片里的污渍、划痕去掉,让图片更干净。


3. 语音信号分析及特征提取

3.1 为什么要提取特征?

原始语音信号是一串数字,维度很高(比如 16kHz 的语音,每秒有 16000 个数字),直接喂给模型会 “吃不消”,而且包含很多冗余信息。

特征提取就是把原始语音转成更紧凑、更有信息量的特征,就像你把一张大照片,压缩成 “关键轮廓”,让模型更容易学习。

类比:

原始语音就像 “一张 100MB 的高清照片”,特征就像 “一张 10KB 的轮廓图”,保留核心信息,体积小很多。

3.2 传统语音特征(经典方法)

3.2.1 时域特征(Time Domain)

直接看语音信号的波形,提取简单特征:

短时能量:每帧语音的能量大小,能量高的部分是语音,能量低的部分是静音 / 噪音。

短时过零率:每帧语音波形穿过零点的次数,清音(比如 s、f)过零率高,浊音(比如 a、o)过零率低。

例子:用短时能量 + 过零率,就能简单区分 “语音段” 和 “静音段”,实现语音活动检测(VAD)。

类比:短时能量就像 “声音的音量”,过零率就像 “声音的频率高低”。

3.2.2 频域特征(Frequency Domain)

语音的本质是不同频率的振动,频域特征就是把语音转成频率信息:

傅里叶变换(FFT):把时域波形转成频域谱,看不同频率的能量分布。

功率谱密度(PSD):看每个频率的能量占比,浊音有明显的基频(F0),清音是宽带噪声。

类比:频域特征就像 “用频谱仪看声音的频率分布”,能看出声音的 “音色”。

3.2.3 梅尔频率倒谱系数(MFCC)

最经典的语音特征,模拟人耳的听觉特性:

  1. 梅尔刻度:人耳对低频更敏感,对高频不敏感,梅尔刻度把线性频率转成 “人耳感知的频率”。
  2. 梅尔滤波器组:用一组三角滤波器,把频域谱转成梅尔频率谱。
  3. 离散余弦变换(DCT):对梅尔频率谱做 DCT,得到 MFCC 系数,去除相关性,压缩维度。
  • 特点:紧凑、稳定,能很好表达语音的音色特征,是传统语音识别的核心特征。
  • 例子:一段 25ms 的语音,提取 13 维 MFCC 特征,就能表达这段语音的核心信息。
  • 类比:MFCC 就像 “给声音做‘指纹识别’”,每个声音都有独特的 MFCC 指纹。

3.2.4 滤波器组特征(FBank)

和 MFCC 类似,但少了 DCT 步骤,保留更多频率信息,更适合深度学习模型:

步骤:预加重→分帧→加窗→FFT→梅尔滤波器组→取对数。

特点:维度更高(比如 80 维),包含更多细节,深度学习模型能自动提取更复杂的特征。

类比:FBank 就像 “给声音做‘高清扫描’”,保留更多细节,让模型自己学习。

3.3 深度学习时代的语音特征

现在的语音模型(比如 Wav2Vec、Whisper),直接用原始波形低级别特征作为输入,自动提取特征,不用手动设计 MFCC/FBank:

原始波形:直接把 16kHz 的语音采样点喂给模型,模型自己学习频域、时域特征。

对数梅尔谱:FBank 的变种,更稳定,是现在 ASR 模型的主流输入。

自监督特征:用大量无标注语音预训练模型,提取通用语音特征(比如 Wav2Vec2 的输出),效果远超手动设计的特征。

类比:

传统特征就像 “你手动给照片描轮廓”,深度学习特征就像 “让 AI 自己看照片,自动提取轮廓”,更灵活、更准确。


4. 语音识别

4.1 语音识别的基本流程

经典语音识别流程(传统 + 混合模型):原始语音 → 预处理 → 特征提取 → 声学模型 → 语言模型 → 解码 → 文字

  1. 预处理:给语音 “洗脸”(格式标准化、去噪、分帧)。
  2. 特征提取:转成 MFCC/FBank 特征。
  3. 声学模型:把特征转成 “音素 / 字的概率”(比如 “ni” 对应 “你” 的概率)。
  4. 语言模型:计算 “文字序列的概率”(比如 “你好” 比 “尼浩” 概率更高)。
  5. 解码:结合声学概率和语言概率,找出概率最高的文字序列。

类比:

就像你听别人说话:先听清声音(预处理)→ 分辨发音(特征提取)→ 猜每个音对应什么字(声学模型)→ 结合语境猜完整句子(语言模型)→ 说出听到的话(解码)。

4.2 语音识别的关键技术

4.2.1 声学模型(Acoustic Model)

核心:把语音特征映射到 “发音单元”(音素 / 字 / 词)的概率。

传统模型:GMM-HMM(高斯混合模型 + 隐马尔可夫模型)。

混合模型:DNN-HMM(深度神经网络 + 隐马尔可夫模型)。

现代模型:端到端模型(CTC/Attention/Transformer)。

4.2.2 语言模型(Language Model)

核心:计算 “文字序列的概率”,纠正声学模型的错误。

例子:声学模型可能把 “你好” 识别成 “尼浩”,语言模型会发现 “你好” 的概率更高,纠正过来。

传统模型:n-gram(统计相邻 n 个词的概率)。

现代模型:Transformer-based LM(比如 BERT、GPT),能捕捉更长距离的语境。

4.2.3 解码(Decoding)

核心:在 “发音单元 - 文字” 的候选中,找出概率最高的序列。

经典方法:维特比算法(Viterbi),高效找到最优路径。

现代方法:集束搜索(Beam Search),保留多个候选,结合语言模型打分。

4.3 端到端语音识别(现代主流)

传统流程太复杂,现在的模型直接 “语音→文字”,一步到位:

CTC(Connectionist Temporal Classification):解决 “语音长度和文字长度不一致” 的问题,让模型直接输出文字序列。

Attention:让模型自动关注语音中对应文字的部分,像人一样 “听重点”。

Transformer:用自注意力机制,捕捉长距离依赖,效果远超传统模型。

例子:Whisper、Wenet、Conformer 都是端到端模型,直接输入语音波形 / 梅尔谱,输出文字,准确率高、部署简单。

类比:

传统流程就像 “先把英文翻译成单词,再把单词拼成句子”;

端到端模型就像 “直接把英文翻译成中文”,更高效、更准确。

4.4 语音识别的挑战

口音与方言:普通话、粤语、四川话、英语口音,模型需要泛化能力。

噪音环境:马路、地铁、商场等噪音场景,需要语音增强。

专业术语:医疗、法律、科技等领域的专业词汇,需要领域适配。

实时性:语音助手、车载交互需要低延迟(<100ms),模型要轻量。


5. 语音合成

5.1 语音合成的基本流程

经典语音合成流程:文字 → 文本分析 → 韵律预测 → 声学模型 → 声码器 → 语音

  1. 文本分析:把文字转成拼音 / 音素,处理多音字、标点、数字(比如 “123” 转成 “一百二十三”)。
  2. 韵律预测:预测语音的停顿、重音、语调(比如疑问句结尾要升调)。
  3. 声学模型:把音素 / 韵律转成 “声学特征”(比如梅尔谱)。
  4. 声码器:把声学特征转成原始语音波形,生成可播放的声音。

类比:

就像你读课文:先认生字(文本分析)→ 标停顿重音(韵律预测)→ 想象发音的音色(声学模型)→ 读出声音(声码器)。

5.2 语音合成的关键技术

5.2.1 文本分析

分词:把句子切成词(比如 “我喜欢吃苹果”→“我 / 喜欢 / 吃 / 苹果”)。

多音字处理:比如 “行” 在 “行走” 里读 xíng,在 “银行” 里读 háng。

数字 / 符号处理:比如 “2024 年”→“二零二四年”,“3.14”→“三点一四”。

例子:“我在银行行走”→ 文本分析后转成 “wǒ zài yín háng xíng zǒu”。

5.2.2 韵律预测

停顿:句子中间的停顿(比如 “我喜欢吃苹果,不喜欢吃香蕉”→“我喜欢吃苹果 / 不喜欢吃香蕉”)。

重音:强调的词(比如 “我喜欢吃苹果”→ 重音在 “苹果”)。

语调:陈述句降调,疑问句升调。

类比:韵律就像 “朗读的语气”,没有韵律的语音像机器人,有韵律的语音更自然。

5.2.3 声学模型

核心:把文本 / 韵律转成声学特征(梅尔谱)。

传统模型:Tacotron、Tacotron2,用 Attention 机制对齐文本和声学特征。

现代模型:Transformer-based(比如 VITS),端到端生成,效果更自然。

例子:输入 “你好”,声学模型输出对应的梅尔谱,包含音色、语调、停顿信息。

5.2.4 声码器

核心:把声学特征转成语音波形,是语音合成的 “最后一公里”。

传统声码器: Griffin-Lim(基于相位重构),音质一般。

现代声码器:WaveNet、WaveGlow、HiFi-GAN,用深度学习生成高质量波形,音质接近真人。

类比:声码器就像 “打印机”,把梅尔谱(文字)打印成语音波形(声音)。

5.3 端到端语音合成(现代主流)

现在的模型直接 “文字→语音”,一步到位:

VITS:端到端模型,把文本分析、韵律预测、声学模型、声码器整合在一起,训练简单、效果自然。

Grad-TTS:基于扩散模型,生成的语音更细腻、情感更丰富。

CosyVoice:开源中文 TTS 模型,支持多说话人、情感控制,适合中文场景。

例子:你输入 “今天天气真好,我们去公园玩吧”,VITS 直接生成一段自然流畅的语音,有停顿、有重音、有情感。

5.4 语音合成的挑战

自然度:让合成语音像真人一样,有情感、有语气,不像机器人。

多说话人:支持不同性别、年龄、音色的说话人,比如 “大叔音”“萝莉音”“御姐音”。

情感控制:能生成开心、生气、难过等不同情绪的语音。

低延迟:实时语音交互需要低延迟,模型要轻量、高效。


6. 传统声学模型 GMM-HMM

6.1 什么是 GMM-HMM?

GMM-HMM 是传统语音识别的核心模型,统治了语音识别领域几十年,直到深度学习兴起才被替代。

GMM(高斯混合模型):建模 “语音特征→音素” 的概率分布,比如一段 MFCC 特征对应 “a” 音素的概率。

HMM(隐马尔可夫模型):建模 “音素→文字” 的序列依赖,比如 “a” 后面跟着 “i” 的概率。

类比:

GMM 就像 “给每个音素做‘模板’”,看语音特征和哪个模板最像;

HMM 就像 “给音素排顺序”,看哪个音素序列最合理。

6.2 GMM:高斯混合模型

GMM 用多个高斯分布的加权和,拟合语音特征的分布:

每个音素对应一个 GMM,比如 “a” 音素的 GMM,用多个高斯分布描述 “a” 的 MFCC 特征分布。

训练时,用大量标注语音,学习每个 GMM 的均值、方差、权重。

推理时,计算语音特征和每个 GMM 的匹配概率,找到概率最高的音素。

例子:一段 MFCC 特征,和 “a” 的 GMM 匹配概率是 0.8,和 “o” 的 GMM 匹配概率是 0.2,就判断这段特征是 “a”。

6.3 HMM:隐马尔可夫模型

HMM 建模序列的状态转移,核心是 “隐藏状态(音素)” 和 “观测(语音特征)”:

状态:音素(比如 a、o、i)。

观测:语音特征(MFCC)。

转移概率:从一个音素转移到另一个音素的概率(比如 a→i 的概率)。

发射概率:从一个音素生成观测特征的概率(就是 GMM 的输出)。

训练时,用 Baum-Welch 算法学习转移概率和发射概率;推理时,用维特比算法找到概率最高的音素序列。

6.4 GMM-HMM 的优缺点

  • 优点
    1. 理论成熟,训练稳定,适合小数据。
    2. 可解释性强,每个部分都能拆开看。
  • 缺点
    1. 建模能力有限,无法捕捉复杂的语音特征。
    2. 需要手动设计特征(MFCC),依赖专家经验。
    3. 流程复杂,需要单独训练 GMM、HMM、语言模型。

类比:

GMM-HMM 就像 “老式机械相机”,结构复杂、需要手动调参数,但稳定可靠;

深度学习模型就像 “全自动数码相机”,操作简单、效果更好,但原理复杂。


7. 混合模型 DNN-HMM

7.1 什么是 DNN-HMM?

DNN-HMM 是传统到深度学习的过渡模型,用 DNN(深度神经网络)替换 GMM,建模 “语音特征→音素” 的概率,保留 HMM 的序列建模能力。

DNN:替代 GMM,输入语音特征(MFCC/FBank),输出每个音素的概率。

HMM:保留,建模音素的序列依赖。

类比:

DNN-HMM 就像 “给老式机械相机换了一个自动对焦镜头”,保留机身(HMM),换了更先进的镜头(DNN)。

7.2 DNN 的核心作用

DNN 比 GMM 强大得多,能捕捉更复杂的语音特征:

输入:语音特征(比如 40 维 FBank,加上下文窗口,比如 11 帧)。

输出:每个音素的后验概率(比如 100 个音素,输出 100 维概率)。

训练:用标注语音,监督学习,最小化交叉熵损失。

例子:输入一段 11 帧的 FBank 特征,DNN 输出 “a” 的概率是 0.9,“o” 的概率是 0.05,其他音素概率很低,就判断这段特征是 “a”。

7.3 DNN-HMM vs GMM-HMM

  • 优势
    1. 建模能力更强,准确率比 GMM-HMM 高 10%~30%。
    2. 能处理更复杂的特征(比如 FBank),不需要手动设计 MFCC。
    3. 泛化能力更强,能处理口音、噪音等场景。
  • 劣势
    1. 需要更多标注数据,训练更复杂。
    2. 流程还是复杂,需要单独训练 DNN、HMM、语言模型。

7.4 DNN-HMM 的历史地位

DNN-HMM 是语音识别的转折点,证明了深度学习在语音领域的有效性,为后来的端到端模型奠定了基础。

2012 年,微软用 DNN-HMM 在 Switchboard 数据集上把词错误率(WER)从 27.4% 降到 21.7%,震惊业界。

之后,CNN、RNN、LSTM、Transformer 等模型陆续被引入,语音识别准确率不断提升。


8. 高级语音模型

8.1 端到端模型:CTC + RNN/Transformer

CTC:解决 “语音长度和文字长度不一致” 的问题,让模型直接输出文字序列,不需要强制对齐。

RNN/LSTM:捕捉语音的时序依赖,适合处理序列数据。

Transformer:用自注意力机制,捕捉长距离依赖,效果远超 RNN。

例子:

DeepSpeech2:CTC + RNN,端到端语音识别模型。

Conformer:CNN + Transformer,结合 CNN 的局部特征和 Transformer 的全局特征,是现在 ASR 的主流架构。

8.2 自监督学习模型:Wav2Vec2

自监督学习就是 “用大量无标注语音预训练模型,学习通用语音特征”:

Wav2Vec2:输入原始语音波形,用对比学习,让模型学习语音的上下文表示。

预训练后,在少量标注数据上微调,就能达到很好的识别效果,大大降低标注成本。

例子:用 10 万小时无标注语音预训练 Wav2Vec2,然后在 100 小时标注数据上微调,准确率比用 1000 小时标注数据训练的模型还高。

8.3 大模型时代的语音处理

多模态大模型:比如 GPT-4V、文心一言,能同时处理语音、文本、图像,实现 “语音对话”“语音 + 图像理解”。

语音大模型:比如 Whisper,支持 99 种语言,能做语音识别、翻译、语音转写,效果接近人类。

端侧大模型:把大模型压缩到手机 / 边缘设备,实现离线语音识别、合成,保护隐私。

例子:你对手机说 “帮我写一篇关于春天的作文,读给我听”,多模态大模型先理解语音指令,生成作文,再用 TTS 合成语音读给你听。

8.4 高级语音模型的优势

准确率更高:词错误率(WER)不断降低,接近人类水平。

泛化能力更强:能处理口音、噪音、多语言场景。

流程更简单:端到端模型,不需要复杂的 pipeline,部署更简单。

能力更丰富:支持语音识别、合成、翻译、情感识别、说话人识别等多任务。


第三章核心知识点总结

 

  1. 语音处理:让机器 “听懂、会说”,核心分支是语音识别(ASR)和语音合成(TTS)。
  2. 语音预处理:格式标准化、预加重、分帧、加窗、去噪,把语音转成模型能处理的格式。
  3. 特征提取:把原始语音转成紧凑特征,传统特征是 MFCC/FBank,现代模型直接用原始波形 / 梅尔谱。
  4. 语音识别:经典流程是 “语音→特征→声学模型→语言模型→解码→文字”,现代主流是端到端模型。
  5. 语音合成:经典流程是 “文字→文本分析→韵律预测→声学模型→声码器→语音”,现代主流是端到端模型。
  6. 传统模型:GMM-HMM 是经典声学模型,DNN-HMM 是过渡模型,证明了深度学习的有效性。
  7. 高级模型:端到端模型(CTC/Transformer)、自监督模型(Wav2Vec2)、多模态大模型,是现在语音处理的主流。

 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐