1. ASR(Automatic Speech Recognition)自动语音识别
通过语音模型将人类语音转化为文本
常见开源/知名模型/工具:
-
Whisper (OpenAI):目前最主流的开源选择,支持多语言,识别精度高。
-
FunASR (阿里巴巴达摩院):专注中文场景,对嘈杂环境鲁棒性强。
- Paraformer-large长音频模型集成VAD、ASR、标点与时间戳功能,可直接对时长为数小时音频进行识别,并输出带标点文字与时间戳
ASR的处理流程
# 音频处理流程
原始音频文件(mp3, m4a, wav等)↓
[FFmpeg 解码] → 转换为原始PCM数据↓
[Paraformer 处理] → 语音识别↓
文本结果
原始长音频↓
[VAD模型] → 检测语音活动,分割音频↓
音频片段列表(时间戳标记)↓
[ASR模型] → 每个片段转为文本↓
无标点文本片段↓
[标点模型] → 添加标点符号↓
最终带标点文本(含时间戳)
1)Paraformer ASR模型
功能
-
核心语音识别:将音频信号转换为文本
-
声学建模:处理音频特征,识别音素/字词
-
语言建模:结合语言上下文,提高识别准确性
特点
-
输入要求:需要预分割的短音频片段
-
输出格式:纯文本,无标点,无时间戳
-
适用场景:已分割好的短音频文件
2)VAD模型(vad_model)- 语音活动检测
功能
-
端点检测:检测音频中有人声的部分
-
静音去除:过滤背景噪声和静音段
-
说话人分段:识别说话人切换点
特点
-
输出:带时间戳的短音频片段
原始音频: [静音10s] [语音5s] [静音3s] [语音8s] [静音...] VAD处理后: [片段1] [片段2] 时间戳: [10.0-15.0] [18.0-26.0]
3)标点模型(punc_model)- 标点恢复
功能
-
标点插入:在识别文本中添加标点符号
-
文本格式化:提高文本可读性
-
语义分段:根据语义插入适当标点
特点
-
输出:带标点符号的文本
支持的标点类型:
, 逗号 . 句号 ? 问号 ! 感叹号 : 冒号 ; 分号 " 引号 、 顿号 《 》书名号 ( )括号
from funasr import AutoModel import numpy as np# 使用一体化模型 model = AutoModel(model=r"E:\03_model\fun-asr-model\speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch",vad_model=r"E:\03_model\fun-asr-model\speech_fsmn_vad_zh-cn-16k-common-pytorch",punc_model=r"E:\03_model\fun-asr-model\punc_ct-transformer_zh-cn-common-vocab272727-pytorch",device="cpu")# 1. 测试短音频 short_result = model.generate(input="vad_example.wav", # 10秒音频batch_size_s=0, # 不分片 ) print("短音频结果:", short_result[0]["text"])# 2. 测试长音频 long_result = model.generate(input="vad_example.wav", # 5分钟音频batch_size_s=100, # 启用分片处理 ) print("长音频结果:", long_result[0]["text"]) print("时间戳:", long_result[0]["timestamp"])
2. TTS(Text-To-Speech) 文本转语音
通过模型将文本自动转换为可听的语音(合成语音),语音中包含各种风格。
常见开源/知名模型/工具:
-
fun-CosyVoice:目前最主流的开源选择,支持多语言,识别精度高。