概念介绍
介绍
📌 ASR(Automatic Speech Recognition,自动语音识别)介绍
ASR(Automatic Speech Recognition)是 自动语音识别技术,用于将 语音转换为文本。它广泛应用于 语音助手(Siri、Alexa)、语音输入、字幕生成、会议转录、客服机器人 等领域。
🔹 ASR 的核心流程
ASR 主要包括 语音信号处理、特征提取、声学模型、语言模型 等关键步骤:
1️⃣ 音频输入 🎤
- 录音设备(麦克风)采集语音信号,并转换为 数字信号(通常是 WAV、MP3、PCM 格式)。
2️⃣ 预处理(降噪、去混响、端点检测)
- 进行 降噪、回声消除、语音活动检测(VAD),过滤掉无用的噪音和静音部分,提高识别准确率。
3️⃣ 特征提取(MFCC、FBank、Spectrogram) 🎛️
- 提取 Mel 频率倒谱系数(MFCC)、梅尔滤波器组(FBank)、短时傅里叶变换(STFT) 等语音特征。
4️⃣ 声学模型(Acoustic Model) 🎙️
- 深度神经网络(DNN)、长短时记忆网络(LSTM)、Transformer 预测 音素(phonemes)或字符(graphemes)。
5️⃣ 解码(Decoder) 🔤
- 结合 语言模型(LM) 进行解码,将预测的音素序列转换为 文本。
6️⃣ 后处理(错误修正、标点恢复) 📝
- 添加标点符号、纠正拼写错误,优化最终的文本输出。
🔹 常见 ASR 模型
📌 1. 传统 ASR(HMM + GMM/DNN)
- 早期 ASR 使用 隐马尔可夫模型(HMM)+ 高斯混合模型(GMM),结合 统计语言模型(n-gram) 进行语音识别。
- 代表模型:
- Kaldi(一个开源的 HMM-DNN 混合 ASR 框架)
📌 2. 端到端 ASR(E2E ASR)
现代 ASR 采用 端到端(End-to-End)深度学习 方法,省去了复杂的 HMM 结构,直接从语音波形到文本映射:
模型架构 | 特点 | 代表性模型 |
CTC(Connectionist Temporal Classification) | 解决 语音长度与文本不匹配 问题 | DeepSpeech 2(Baidu) |
Seq2Seq + Attention | 适用于短语音识别,适合 口语对话 | Listen, Attend and Spell (LAS) |
RNN-T(Recurrent Neural Network Transducer) | 流式语音识别,适用于 实时 ASR | Google Speech-to-Text |
Transformer / Conformer | 采用 自注意力机制,处理长序列语音效果好 | Whisper(OpenAI)、Wav2Vec 2.0(Meta) |
🔹 经典 ASR 开源模型
模型 | 框架 | 特点 |
DeepSpeech | TensorFlow | 基于 CTC,支持离线和在线识别 |
Kaldi | Kaldi | 传统 HMM-DNN ASR,适合定制化训练 |
Wav2Vec 2.0 | PyTorch | 无监督预训练,适合低资源语种 |
Whisper | OpenAI | 多语言、端到端、强泛化能力 |
Silero ASR | PyTorch | 轻量级、支持 CPU 推理 |
ESPnet | PyTorch | 支持多种 ASR 模型(CTC, Transformer, RNN-T) |
Vosk | Kaldi | 本地离线 ASR,适用于嵌入式设备 |
🔹 ASR 在 AGI 里的作用
- 语音输入:用于语音助手、智能家居、智能客服
- 多模态交互:结合 NLP 进行语音理解
- 自动字幕:视频、直播的实时字幕生成
- 会议转录:自动记录会议内容
- 辅助翻译:结合机器翻译实现跨语言交流
📌 总结
ASR 是 语音转文字的核心技术,从传统 HMM-GMM 方法发展到 端到端神经网络模型(CTC、Transformer、RNN-T)。
不同的模型适用于不同场景,在 AGI 中,ASR 作为 语音输入层,结合 NLP 可以实现更自然的人机交互! 🚀
xiaozhi-server
配置文件中的ASR
SenseVoiceSmall, sherpa_onnx_local, DoubaoASR简介
1️⃣ SenseVoiceSmall
📌 SenseVoiceSmall 可能是一个小型轻量化的语音识别模型,适用于 低功耗设备、嵌入式系统、边缘计算 等场景。
🔹 特点:
- 轻量级,适合 本地部署 或 资源受限设备
- 可能使用 Transformer 或 Conformer 架构
- 适合 离线识别、物联网(IoT)、智能家居
🔹 适用场景:
- 语音命令识别(如智能助手)
- 低功耗设备上的 ASR
- 边缘计算,如 ESP32、树莓派、嵌入式设备
2️⃣ sherpa_onnx_local
📌 Sherpa-ONNX 是由 k2-fsa 团队开发的 端到端 ASR 解决方案,基于 ONNX,适合 本地运行。
🔹 特点:
- 轻量化 ASR 方案,不依赖服务器,可本地推理
- ONNX 格式,适用于 跨平台(Python、C++) 部署
- 低延迟,适用于 实时语音识别
🔹 适用场景:
- 本地语音识别(离线 ASR),不依赖云端
- 嵌入式设备、边缘计算,如 Android、树莓派
- 私有化部署,保证数据隐私
📌 安装 & 使用(Python):
3️⃣ DoubaoASR(豆包 ASR)
📌 DoubaoASR(豆包语音识别) 可能是 字节跳动(TikTok 母公司)推出的 ASR 模型,适用于中文语音识别。
🔹 特点:
- 适合中文语音识别,优化 普通话、方言
- 可能采用 Transformer/Conformer 结构
- 适用于智能客服、语音输入
- 可能支持 云端 & 本地 运行
🔹 适用场景:
- 智能客服(机器人、语音输入法)
- 字幕生成(短视频、直播字幕)
- 会议转录(语音转文字)
🔹 总结
模型 | 特点 | 适用场景 |
SenseVoiceSmall | 轻量级,适用于嵌入式 | IoT、离线语音命令 |
sherpa_onnx_local | ONNX 格式,低延迟 | 本地 ASR、私有化部署 |
DoubaoASR | 适用于中文 | 语音助手、字幕、会议转录 |
如果你需要 本地 ASR 部署,sherpa_onnx_local 可能是最佳选择!
如果你想做 中文语音识别,DoubaoASR 可能更合适。 🚀
‣
加载方式
- 采用工厂模式创建
- 动态加载对应的ASR的Provider模块
音频格式: OPUS
科普
OPUS 音频格式 是一种高效、低延迟的音频编码格式,适用于 VoIP、视频会议、流媒体和游戏语音 等场景。
📌 OPUS 简介
- 编码方式:混合 CELT(低延迟变换编码) 和 SILK(线性预测编码)
- 自适应比特率:支持 6 kbps - 510 kbps,根据网络情况自动调整
- 低延迟:最低可达 5 ms(适合实时语音通信)
- 高音质:可以同时处理 窄带(8kHz)到全频带(48kHz)
- 开源 & 免费:由 IETF 标准化,开源(libopus)
📌 OPUS 适用场景
场景 | 特点 |
🎤 VoIP(语音通话) | Skype、Zoom、WhatsApp 语音 |
🎮 游戏语音 | Discord、TeamSpeak |
🎥 流媒体 | YouTube、Twitch |
📻 在线广播 | 低延迟、高音质 |
📌 OPUS 转换 & 处理
🔹 FFmpeg 处理 OPUS
1️⃣ OPUS 转 MP3 / WAV
2️⃣ MP3 / WAV 转 OPUS
🔹 Python 处理 OPUS
安装
pydub
(需要 ffmpeg)转换 OPUS
📌 结论
- OPUS 适合高质量、低延迟的音频应用(VoIP、游戏、流媒体)。
- 支持自适应比特率,适应不同网络环境。
- 可以用 FFmpeg、Python(pydub)处理 OPUS 文件。
🚀 如果你要做 AGI 语音处理,OPUS 是一个不错的选择!