news 2026/6/4 20:15:49

从0开始学语音AI:用SenseVoiceSmall做带情绪标签的转录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0开始学语音AI:用SenseVoiceSmall做带情绪标签的转录

从0开始学语音AI:用SenseVoiceSmall做带情绪标签的转录

你有没有遇到过这样的问题:一段录音里,说话人明明语气激动,但转写出来的文字却平平无奇?或者视频会议记录里,大家鼓掌、笑出声的瞬间,在文本中完全“消失”了?

传统的语音识别(ASR)只能把声音变成文字,而现在的AI已经能听懂“语气”和“环境”了。今天我们要一起上手的,就是阿里开源的SenseVoiceSmall模型——它不仅能精准识别中文、英文、日语、韩语、粤语,还能告诉你这段话是“开心地说”还是“愤怒地吼”,甚至标注出背景里的掌声、笑声、音乐。

更棒的是,我们不需要一行行敲代码,就能通过一个可视化界面玩转这个强大的模型。这篇文章会带你从零开始,一步步部署、运行,并真正理解它输出的每一条“带情绪的转录”。

1. 为什么你需要“带情绪”的语音识别?

传统ASR vs 富文本转录

我们先来对比一下:

  • 传统语音识别(ASR)
    输入:一段音频
    输出:纯文字
    示例:

    “我觉得这个方案不行。”

    看不出说话人是冷静分析,还是在发火。

  • 富文本转录(Rich Transcription)
    输入:同一段音频
    输出:带情感和事件标签的文字
    示例:

    <|ANGRY|>我觉得这个方案不行<|APPLAUSE|>

    这下清楚多了:说话人生气了,而且后面还有人鼓掌。

这种能力在很多场景下非常关键:

  • 客服质检:自动识别客户是否不满,提升服务质量。
  • 视频字幕生成:让字幕更有表现力,比如标注“(笑声)”。
  • 会议纪要:标记谁在什么时候表达了情绪,便于复盘。
  • 内容创作:为播客、短视频自动生成带氛围描述的脚本。

而 SenseVoiceSmall 正是目前少数能同时支持多语言 + 情感识别 + 声音事件检测的开源模型之一。

2. 镜像环境快速部署

2.1 一键启动 WebUI

你拿到的镜像是一个已经配置好所有依赖的完整环境,包括:

  • Python 3.11
  • PyTorch 2.5
  • FunASR 和 ModelScope 核心库
  • Gradio 可视化界面
  • FFmpeg 音频处理工具

这意味着你几乎不需要手动安装任何东西。

如果镜像没有自动运行服务,只需在终端执行以下命令即可启动 Web 界面:

python app_sensevoice.py

这条命令会启动一个基于 Gradio 的网页应用,默认监听6006端口。

2.2 如何访问本地 Web 界面?

由于大多数云平台出于安全考虑不直接开放端口,我们需要通过 SSH 隧道将远程服务映射到本地。

在你的本地电脑终端运行:

ssh -L 6006:127.0.0.1:6006 -p [实际端口号] root@[服务器IP]

连接成功后,打开浏览器访问:

👉 http://127.0.0.1:6006

你会看到一个简洁的语音识别控制台,支持上传音频或直接录音,选择语言,点击按钮就能获得结果。


小贴士:为什么用 Gradio?
Gradio 是一个极简的 Python 库,几行代码就能把机器学习模型变成可交互的网页。对于非前端开发者来说,它是快速验证模型效果的最佳工具。


3. 模型核心功能详解

3.1 多语言识别:不再局限于中文

SenseVoiceSmall 支持五种主要语言:

语言代码
自动识别auto
中文zh
英文en
粤语yue
日语ja
韩语ko

你在使用时可以通过下拉菜单指定语言,也可以设为auto让模型自动判断。

这对于跨国会议、双语访谈等场景特别有用。

3.2 情感识别:听出“语气”

模型可以识别多种情感状态,常见的有:

  • <|HAPPY|>:开心、兴奋
  • <|SAD|>:低落、悲伤
  • <|ANGRY|>:愤怒、不满
  • <|NEUTRAL|>:中性、平静

这些标签会被插入到对应语句前后,形成“富文本”输出。

举个例子:

原始音频内容:
“哇!这真是太棒了!!”

模型输出可能为:
<|HAPPY|>哇!这真是太棒了!!

这比单纯的文字多了太多信息量。

3.3 声音事件检测:听见“背景音”

除了人声,模型还能识别环境中的特定声音事件:

  • <|BGM|>:背景音乐
  • <|APPLAUSE|>:掌声
  • <|LAUGHTER|>:笑声
  • <|CRY|>:哭声

想象一下,一段脱口秀视频中,观众突然爆笑,传统 ASR 只会沉默,而 SenseVoice 会标注:

<|LAUGHTER|>(此时全场大笑)

这对后期剪辑、内容摘要都非常有价值。

4. 实际操作演示

4.1 准备一段测试音频

你可以找一段包含以下元素的音频来测试:

  • 不同情绪的说话(如高兴、生气)
  • 背景音乐
  • 掌声或笑声

如果没有现成素材,也可以自己录制一段简单的测试语音,比如:

“大家好,今天我们来聊聊 AI。(笑声)我觉得这项技术真的太神奇了!(掌声)”

4.2 上传并识别

  1. 打开 http://127.0.0.1:6006
  2. 点击“上传音频”按钮,选择你的文件
  3. 在“语言选择”中选zhauto
  4. 点击“开始 AI 识别”

等待几秒钟,结果就会出现在右侧文本框中。

4.3 查看带标签的输出

假设你上传了一段带有笑声和掌声的演讲录音,输出可能是这样的:

<|HAPPY|>大家好,今天我们来聊聊 AI<|LAUGHTER|>我觉得这项技术真的太神奇了!<|APPLAUSE|>

是不是一下子生动起来了?

4.4 后处理:让标签更友好

默认输出中的<|HAPPY|>这类标签虽然清晰,但在某些场景下可能不够自然。我们可以用rich_transcription_postprocess函数将其转换为更易读的形式。

例如:

from funasr.utils.postprocess_utils import rich_transcription_postprocess raw_text = "<|HAPPY|>大家好<|APPLAUSE|>" clean_text = rich_transcription_postprocess(raw_text) print(clean_text) # 输出:[开心]大家好[掌声]

这样更适合展示给普通用户。

5. 代码解析:看看背后发生了什么

虽然我们用了 Gradio 界面,但了解背后的逻辑对后续定制非常重要。

以下是app_sensevoice.py的关键部分拆解:

5.1 初始化模型

model_id = "iic/SenseVoiceSmall" model = AutoModel( model=model_id, trust_remote_code=True, vad_model="fsmn-vad", vad_kwargs={"max_single_segment_time": 30000}, device="cuda:0", # 使用 GPU 加速 )

这里做了几件事:

  • 加载预训练模型
  • 启用 VAD(语音活动检测),自动切分静音段
  • 指定使用 GPU 提升推理速度

5.2 调用识别接口

res = model.generate( input=audio_path, cache={}, language=language, use_itn=True, # 数字转文字(如 100 → 一百) batch_size_s=60, # 批处理长度,影响速度 merge_vad=True, # 合并短片段 merge_length_s=15, # 最大合并时长 )

参数说明:

  • use_itn=True:开启“逆文本归一化”,把数字、日期等转成口语表达。
  • batch_size_s=60:以60秒为单位进行批处理,适合长音频。
  • merge_vad=True:避免一句话被切成太碎的片段。

5.3 结果清洗

raw_text = res[0]["text"] clean_text = rich_transcription_postprocess(raw_text)

这一步会把原始标签美化成[开心][掌声]这样的格式,更适合展示。

6. 使用技巧与常见问题

6.1 音频格式建议

  • 采样率:推荐 16kHz,模型会自动重采样,但原始为16k效果最佳。
  • 格式:WAV、MP3、FLAC 均可,避免使用高压缩率的 AMR 或 OPUS。
  • 声道:单声道优先,立体声也能处理,但可能影响定位精度。

6.2 如何提升识别准确率?

  • 明确语言设置:如果知道是中文,就不要用auto,直接选zh
  • 避免背景噪音过大:虽然模型有一定抗噪能力,但清晰录音效果更好。
  • 控制语速:过快或含糊不清会影响断句和情感判断。

6.3 常见问题排查

问题可能原因解决方法
无法启动服务端口被占用更换server_port为其他值,如6007
识别失败音频损坏或路径错误检查上传文件是否正常
情感标签缺失语气太平淡尝试更明显的情绪表达
GPU 报错显存不足改用 CPU 推理(device="cpu"

经验分享:什么时候用 GPU?
如果你只是偶尔处理几段短音频,CPU 完全够用。但如果你要批量处理上百条录音,强烈建议使用 GPU(如 4090D),推理速度可达秒级,效率提升显著。


7. 进阶玩法:不只是转录

7.1 批量处理音频文件

你可以写个脚本,遍历整个文件夹,自动处理所有音频:

import os audio_dir = "./audios/" for filename in os.listdir(audio_dir): if filename.endswith((".wav", ".mp3")): audio_path = os.path.join(audio_dir, filename) result = model.generate(input=audio_path, language="auto") text = result[0]["text"] clean_text = rich_transcription_postprocess(text) with open(f"transcripts/{filename}.txt", "w") as f: f.write(clean_text)

7.2 构建私有语音分析平台

结合数据库和前端框架(如 Vue),你可以搭建一个企业级语音分析系统:

  • 上传会议录音 → 自动生成带情绪标记的纪要
  • 统计客户投诉录音中“愤怒”出现频率
  • 分析培训课程中讲师情绪变化趋势

7.3 与其他工具集成

  • 接入微信机器人:用户发送语音,自动回复转录结果。
  • 连接 Notion API:将会议记录直接写入知识库。
  • 配合 TTS 模型:实现“有感情”的语音合成闭环。

8. 总结

8.1 你学会了什么?

在这篇文章中,我们完成了以下目标:

  • 了解了什么是“富文本转录”,以及它相比传统 ASR 的优势。
  • 成功部署并运行了 SenseVoiceSmall 的 WebUI 服务,无需复杂配置。
  • 实践了如何上传音频、选择语言、获取带情感和事件标签的识别结果。
  • 理解了模型的核心能力:多语言识别、情感检测、声音事件标注。
  • 掌握了关键代码逻辑,为后续定制开发打下基础。
  • 学会了一些实用技巧,如后处理、批量处理、性能优化。

8.2 下一步你可以做什么?

  • 尝试更多真实场景:用朋友聊天录音、公开演讲视频做测试。
  • 优化输出格式:把结果导出为 SRT 字幕、Markdown 笔记等。
  • 加入标点修复:虽然 SenseVoice 自带一定标点能力,但仍可进一步优化。
  • 探索微调可能:如果有特定领域数据(如医疗、法律),可以尝试微调模型。

语音 AI 正在从“听清”走向“听懂”。SenseVoiceSmall 让我们第一次如此轻松地触达这一能力。现在,轮到你去创造属于自己的智能语音应用了。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 15:58:54

TurboDiffusion I2V功能上线:图像转视频全流程部署实战案例

TurboDiffusion I2V功能上线&#xff1a;图像转视频全流程部署实战案例 1. 引言&#xff1a;让静态图片动起来的革命性突破 你有没有想过&#xff0c;一张普通的照片可以变成一段生动的视频&#xff1f;现在&#xff0c;这不再是幻想。TurboDiffusion 正式上线 I2V&#xff0…

作者头像 李华
网站建设 2026/5/28 3:22:54

小说下载神器完整教程:从零开始掌握批量下载技巧

小说下载神器完整教程&#xff1a;从零开始掌握批量下载技巧 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在数字阅读时代&#xff0c;拥有一个可靠的小说下载工具能够极大提升阅读体验。…

作者头像 李华
网站建设 2026/6/4 20:28:36

知乎内容安全备份:你的数字资产守护指南

知乎内容安全备份&#xff1a;你的数字资产守护指南 【免费下载链接】zhihu_spider_selenium 爬取知乎个人主页的想法、文篇和回答 项目地址: https://gitcode.com/gh_mirrors/zh/zhihu_spider_selenium 你是否曾经遇到过这样的情况&#xff1a;精心撰写的知乎回答突然消…

作者头像 李华
网站建设 2026/6/4 4:32:46

暗黑破坏神2存档编辑器的技术探险:从数据解析到游戏自由

暗黑破坏神2存档编辑器的技术探险&#xff1a;从数据解析到游戏自由 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 在暗黑破坏神2的宏大世界中&#xff0c;每个角色存档都承载着玩家无数的冒险记忆。当传统的游戏体验无法满足个…

作者头像 李华
网站建设 2026/5/20 23:33:38

CAM++如何实现高精度声纹比对?余弦相似度计算详解

CAM如何实现高精度声纹比对&#xff1f;余弦相似度计算详解 1. 引言&#xff1a;为什么声纹识别越来越重要&#xff1f; 你有没有想过&#xff0c;未来可能不再需要密码或指纹来验证身份&#xff1f;你的声音本身就足以证明“你是谁”。这听起来像科幻电影的情节&#xff0c;…

作者头像 李华
网站建设 2026/5/20 9:18:02

支持16kHz音频!高精度中文语音识别模型实测

支持16kHz音频&#xff01;高精度中文语音识别模型实测 1. 引言&#xff1a;为什么我们需要本地化语音识别&#xff1f; 你有没有遇到过这样的场景&#xff1a;会议录音长达一小时&#xff0c;手动整理文字耗时又费力&#xff1b;或者在安静的图书馆里想快速记录灵感&#xf…

作者头像 李华