如何用SenseVoice Small识别语音并标注情感?科哥镜像快速上手

如何用SenseVoice Small识别语音并标注情感?科哥镜像快速上手

1. 引言:为什么选择SenseVoice Small进行语音情感识别?

在智能客服、会议记录、内容审核等实际应用场景中,仅识别语音文字已无法满足需求。理解说话人的情绪状态和音频中的环境事件,正成为下一代语音交互系统的核心能力。

SenseVoice Small 是由 FunAudioLLM 开发的轻量级音频基础模型,在保持高效推理速度的同时,集成了语音识别(ASR)、语种识别(LID)、语音情感识别(SER)和声学事件分类(AEC)四大功能。相比主流的 Whisper-small 模型,它不仅支持多语言高精度转录,还能自动标注“开心”“生气”“笑声”“背景音乐”等丰富标签,极大提升了语音数据的理解维度。

本文基于“SenseVoice Small 根据语音识别文字和情感事件标签 二次开发构建 by 科哥”这一预配置镜像环境,带你从零开始掌握如何快速部署、使用 WebUI 界面完成语音识别与情感分析,并提供可扩展的 API 调用方案,助力开发者高效集成到自有系统中。


2. 镜像环境准备与启动流程

2.1 镜像简介与优势

该镜像为社区开发者“科哥”对原始 SenseVoice 项目的二次封装版本,主要特点包括:

  • ✅ 预装完整依赖环境(Python 3.10 + PyTorch + torchaudio)
  • ✅ 内置webui.pyapi.py双服务入口
  • ✅ 支持本地离线运行(模型缓存已内置或可手动复制)
  • ✅ 提供图形化 WebUI 界面,降低使用门槛
  • ✅ 开放 RESTful API 接口,便于二次开发集成

提示:首次运行会自动加载模型至.cache/modelscope/hub/iic目录,建议将此目录保留以支持后续离线使用。

2.2 启动应用服务

无论你是通过云平台容器还是本地 JupyterLab 访问该镜像,均可通过以下命令重启或启动 WebUI 服务:

/bin/bash /root/run.sh

该脚本通常包含如下核心指令:

cd /root/SenseVoice python webui.py --port 7860 --host 0.0.0.0

2.3 访问 WebUI 地址

服务启动后,在浏览器中打开:

http://localhost:7860

若部署在远程服务器,请替换localhost为实际 IP 地址,并确保端口 7860 已开放防火墙规则。


3. WebUI 使用详解:四步完成语音识别与情感标注

3.1 界面布局说明

WebUI 页面采用简洁清晰的双栏设计:

┌─────────────────────────────────────────────────────────┐ │ [紫蓝渐变标题] SenseVoice WebUI │ │ webUI二次开发 by 科哥 | 微信:312088415 │ ├─────────────────────────────────────────────────────────┤ │ 📖 使用说明 │ ├──────────────────────┬──────────────────────────────────┤ │ 🎤 上传音频 │ 💡 示例音频 │ │ 🌐 语言选择 │ - zh.mp3 (中文) │ │ ⚙️ 配置选项 │ - en.mp3 (英文) │ │ 🚀 开始识别 │ - ja.mp3 (日语) │ │ 📝 识别结果 │ - ko.mp3 (韩语) │ └──────────────────────┴──────────────────────────────────┘

左侧为操作区,右侧为示例资源,方便新手快速体验。

3.2 步骤一:上传音频文件或录音

方式一:上传本地音频

点击🎤 上传音频或使用麦克风区域,选择支持格式的音频文件:

  • 支持格式:MP3、WAV、M4A
  • 推荐采样率:16kHz 或更高
  • 建议时长:30秒以内(过长音频会影响响应速度)
方式二:实时麦克风录音

点击右侧麦克风图标,授权浏览器访问麦克风权限后:

  1. 点击红色圆形按钮开始录制
  2. 再次点击停止录音
  3. 系统自动生成临时 WAV 文件用于识别

注意:确保环境安静,避免回声干扰,有助于提升识别准确率。

3.3 步骤二:选择识别语言

🌐 语言选择下拉菜单中选择目标语言:

选项说明
auto自动检测语言(推荐用于混合语种或不确定场景)
zh中文普通话
yue粤语
en英语
ja日语
ko韩语
nospeech强制标记为无语音

对于明确语种的音频,建议直接指定语言以获得更优识别效果。

3.4 步骤三:启动识别任务

点击🚀 开始识别按钮,系统将执行以下流程:

  1. 加载音频数据
  2. 执行 VAD(Voice Activity Detection)分割有效语音段
  3. 调用 SenseVoice Small 模型进行联合识别:
    • 文字转录
    • 情感分类
    • 声学事件检测
  4. 合并输出结构化结果

处理耗时参考

  • 10秒音频:约 0.5~1 秒
  • 1分钟音频:约 3~5 秒
  • 实际性能受 CPU/GPU 资源影响

3.5 步骤四:查看识别结果

识别完成后,结果将在📝 识别结果文本框中展示,格式如下:

🎼😀欢迎收听本期节目,我是主持人小明。😊
结构解析:
组件含义
🎼事件标签:背景音乐(BGM)
😀事件标签:笑声(Laughter)
欢迎收听...识别出的文字内容
😊情感标签:开心(HAPPY)
支持的情感标签(末尾显示):
  • 😊 开心 (HAPPY)
  • 😡 生气/激动 (ANGRY)
  • 😔 伤心 (SAD)
  • 😰 恐惧 (FEARFUL)
  • 🤢 厌恶 (DISGUSTED)
  • 😮 惊讶 (SURPRISED)
  • (无表情)= 中性 (NEUTRAL)
支持的事件标签(开头显示):
  • 🎼 背景音乐 (BGM)
  • 👏 掌声 (Applause)
  • 😀 笑声 (Laughter)
  • 😭 哭声 (Cry)
  • 🤧 咳嗽/喷嚏 (Cough/Sneeze)
  • 📞 电话铃声
  • 🚗 引擎声
  • 🚶 脚步声
  • 🚪 开门声
  • 🚨 警报声
  • ⌨️ 键盘声
  • 🖱️ 鼠标声

4. 高级配置与优化技巧

4.1 配置选项说明

展开⚙️ 配置选项可调整以下参数(一般无需修改):

参数说明默认值
语言识别语言模式auto
use_itn是否启用逆文本正则化(如“50”转“五十”)True
merge_vad是否合并相邻 VAD 分段True
batch_size_s动态批处理时间窗口(秒)60

修改这些参数可能影响识别精度或延迟,建议仅在特定场景下调试使用。

4.2 提升识别质量的实用建议

维度最佳实践
音频质量使用 16kHz 以上采样率的 WAV 格式文件
录音环境在安静环境中录制,减少背景噪音
设备选择使用高质量麦克风,避免手机自带 mic 的失真
语速控制保持适中语速,避免过快导致漏词
语言设定若确定语种,优先选择具体语言而非 auto

4.3 示例音频快速体验

点击右侧💡 示例音频列表中的任意条目即可立即测试:

示例文件特点
zh.mp3中文日常对话
yue.mp3粤语识别能力演示
en.mp3英文朗读识别
emo_1.wav明显情绪波动样本(适合测试情感识别)
rich_1.wav多事件叠加场景(含笑声、背景音等)

5. 二次开发指南:调用本地 API 实现自动化识别

虽然 WebUI 适合人工操作,但在生产环境中我们往往需要程序化调用。以下是基于 Python 的 API 调用示例,可用于构建自动化语音处理流水线。

5.1 启动 API 服务

首先确保api.py正常运行,并修改其启动方式以支持外网访问:

if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8666)

然后启动服务:

python api.py

API 地址为:

http://localhost:8666/api/v1/asr

5.2 完整调用代码示例

import io import time import wave import requests from tqdm import tqdm import speech_recognition as sr import re class AudioRecorder: def __init__(self, rate=16000): self.rate = rate self.recognizer = sr.Recognizer() def record(self): with sr.Microphone(sample_rate=self.rate) as source: print('请在倒计时结束前说话', flush=True) start_time = time.time() audio = None for _ in tqdm(range(20), desc="倒计时", unit="s"): try: audio = self.recognizer.listen(source, timeout=1, phrase_time_limit=15) break except sr.WaitTimeoutError: if time.time() - start_time > 20: print("未检测到语音输入") break if audio is None: print("未检测到语音输入") return None audio_data = audio.get_wav_data() return io.BytesIO(audio_data) def save_wav(self, audio_data, filename="temp_output.wav"): audio_data.seek(0) with wave.open(filename, 'wb') as wav_file: wav_file.setnchannels(1) wav_file.setsampwidth(2) wav_file.setframerate(self.rate) wav_file.setcomptype("NONE", "not compressed") wav_file.writeframes(audio_data.read()) audio_data.seek(0) def run(self): audio_data = self.record() if audio_data: self.save_wav(audio_data, "temp_output.wav") return audio_data class SenseVoice: def __init__(self, api_url, emo=False): self.api_url = api_url self.emo = emo def _extract_second_bracket_content(self, raw_text): match = re.search(r'<[^<>]*><([^<>]*)>', raw_text) if match: return match.group(1) return None def _get_speech_text(self, audio_data): print('正在进行语音识别') files = [('files', ('audio.wav', audio_data, 'audio/wav'))] data = {'keys': 'audio1', 'lang': 'auto'} response = requests.post(self.api_url, files=files, data=data) if response.status_code == 200: result_json = response.json() if "result" in result_json and len(result_json["result"]) > 0: if self.emo: emotion = self._extract_second_bracket_content(result_json["result"][0]["raw_text"]) text = result_json["result"][0]["text"] return f"{emotion}\n{text}" else: return result_json["result"][0]["text"] else: return "未识别到有效的文本" else: return f"请求失败,状态码: {response.status_code}" def speech_to_text(self, audio_data): return self._get_speech_text(audio_data) # 使用示例 if __name__ == "__main__": recorder = AudioRecorder() audio_data = recorder.run() if audio_data: api_url = "http://localhost:8666/api/v1/asr" sense_voice = SenseVoice(api_url, emo=True) result = sense_voice.speech_to_text(audio_data) print("识别结果:", result)

5.3 返回结果示例

API 原始返回 JSON 示例:

{ "result": [ { "key": "audio1", "raw_text": "<speech><happy>欢迎收听本期节目,我是主持人小明。</speech>", "text": "欢迎收听本期节目,我是主持人小明。" } ] }

经处理后输出:

happy 欢迎收听本期节目,我是主持人小明。

6. 总结

SenseVoice Small 凭借其多模态感知能力(文字 + 情感 + 事件),正在成为轻量级语音理解场景的理想选择。结合“科哥”提供的二次开发镜像,用户可以:

  • 快速部署 WebUI 进行交互式测试
  • 利用示例音频验证情感与事件识别效果
  • 通过 API 接口实现自动化语音处理流水线
  • 在低资源环境下实现百毫秒级响应

尽管当前 large 模型尚未开源,但 small 版本已在多数日常场景中表现出色,尤其适合教育、客服质检、内容创作等领域。

未来可进一步探索:

  • 将识别结果接入 NLP 情绪分析 pipeline
  • 构建带情感标签的语音数据库
  • 实现实时直播语音监控系统

掌握这一工具链,意味着你已具备构建“听得懂情绪”的语音智能系统的初步能力。

7. 常见问题解答

问题解决方案
Q: 上传音频后无反应?A: 检查文件是否损坏,尝试重新上传或转换为 WAV 格式
Q: 识别结果不准确?A: 检查音频质量、语言设置是否正确,优先使用 auto 模式
Q: 识别速度慢?A: 音频过长或服务器资源不足,建议分段处理
Q: 如何复制识别结果?A: 点击结果框右侧的复制按钮即可
Q: 如何离线运行?A: 将.cache/modelscope/hub/iic目录复制到项目根目录

版权声明:本镜像由“科哥”二次开发并维护,联系方式微信 312088415。项目基于 FunAudioLLM/SenseVoice 开源协议发布,承诺永久开源使用,请保留原作者版权信息。


获取更多AI镜像

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1180186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亲测Youtu-2B:轻量级LLM在代码编写和数学推理中的惊艳表现

亲测Youtu-2B&#xff1a;轻量级LLM在代码编写和数学推理中的惊艳表现 1. 引言&#xff1a;为何关注轻量级大模型&#xff1f; 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;模型参数规模不断攀升&#xff0c;动辄数十亿甚至上千亿参数…

C++ spidev0.0读取255问题解析:工业控制通信异常深度剖析

SPI通信“读出0xFF”之谜&#xff1a;从工业现场到代码层的全链路排错实录在一次深夜值班中&#xff0c;我接到产线报警——某温度监控节点数据异常飙升至800C以上。查看日志发现&#xff0c;ADC芯片返回的是两个字节0xFF, 0xFF&#xff0c;而设备并未过热。更诡异的是&#xf…

SAM 3性能测试:大规模图像处理评估

SAM 3性能测试&#xff1a;大规模图像处理评估 1. 引言 随着计算机视觉技术的快速发展&#xff0c;图像与视频中的对象分割任务正从传统的专用模型向统一的基础模型演进。SAM 3&#xff08;Segment Anything Model 3&#xff09;作为Facebook推出的新一代可提示分割模型&…

如何高效运行DeepSeek-OCR?一文带你玩转WEBUI镜像部署

如何高效运行DeepSeek-OCR&#xff1f;一文带你玩转WEBUI镜像部署 1. 引言&#xff1a;为什么选择 DeepSeek-OCR-WEBUI&#xff1f; 在数字化转型加速的背景下&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术已成为文档自动化处理的核心工具。面对复杂场景下的文本…

MinerU部署常见问题解决:10个坑与应对方案

MinerU部署常见问题解决&#xff1a;10个坑与应对方案 1. 引言 1.1 业务场景描述 随着企业数字化转型的深入&#xff0c;非结构化文档&#xff08;如PDF、扫描件、财报、论文&#xff09;的自动化处理需求日益增长。MinerU 作为一款专为智能文档理解设计的轻量级多模态模型&…

SAM3应用:智能安防中的异常行为检测

SAM3应用&#xff1a;智能安防中的异常行为检测 1. 技术背景与应用场景 随着智能监控系统的普及&#xff0c;传统基于规则的视频分析方法在复杂场景下面临诸多挑战。例如&#xff0c;固定区域入侵检测难以适应动态环境变化&#xff0c;而运动目标追踪容易受到光照、遮挡等因素…

零基础入门Open-AutoGLM:Mac上5分钟部署AI手机助理,小白也能轻松上手

零基础入门Open-AutoGLM&#xff1a;Mac上5分钟部署AI手机助理&#xff0c;小白也能轻松上手 摘要&#xff1a;本教程教你在 Mac (Apple Silicon) 上部署智谱 AutoGLM-Phone-9B 多模态大模型&#xff0c;实现完全本地化、隐私安全、零成本的手机 AI 助理。从原理到部署、从操作…

MinerU替代方案对比:为什么云端版更适合小白?

MinerU替代方案对比&#xff1a;为什么云端版更适合小白&#xff1f; 你是一位非技术背景的创始人&#xff0c;正打算为公司引入一套文档AI系统&#xff0c;用来自动化处理合同、报告、产品手册等大量PDF和Office文档。你的目标很明确&#xff1a;提升团队效率&#xff0c;减少…

UI-TARS-desktop实战案例:基于Qwen3-4B-Instruct-2507的智能翻译

UI-TARS-desktop实战案例&#xff1a;基于Qwen3-4B-Instruct-2507的智能翻译 1. UI-TARS-desktop简介 Agent TARS 是一个开源的多模态 AI Agent 框架&#xff0c;致力于通过融合 GUI 自动化、视觉理解&#xff08;Vision&#xff09;等能力&#xff0c;构建能够与现实世界工具…

告别GPU!用DeepSeek-R1在普通电脑实现流畅AI推理

告别GPU&#xff01;用DeepSeek-R1在普通电脑实现流畅AI推理 1. 引言&#xff1a;为什么我们需要CPU上的本地AI推理&#xff1f; 随着大模型技术的飞速发展&#xff0c;越来越多开发者和企业希望将AI能力集成到本地应用中。然而&#xff0c;主流的大语言模型&#xff08;LLM&…

2026年悬浮门定做专业厂家推荐参考 - 2026年企业推荐榜

文章摘要 本文分析了2026年悬浮门行业的发展趋势,基于综合因素推荐了五家专业厂家,包括红门集团等,详细介绍了各公司的品牌实力和推荐理由,并提供了悬浮门选择指南和采购建议,帮助决策者做出明智选择。 正文内容 …

AI绘画也能本地化?Z-Image-Turbo中文支持太强了

AI绘画也能本地化&#xff1f;Z-Image-Turbo中文支持太强了 1. 背景与痛点&#xff1a;为什么我们需要本地化的文生图模型&#xff1f; 在生成式AI快速发展的今天&#xff0c;图像生成技术已从实验室走向大众创作。然而&#xff0c;对于中文用户而言&#xff0c;一个长期存在…

惊艳!Fun-ASR打造的粤语语音识别案例展示

惊艳&#xff01;Fun-ASR打造的粤语语音识别案例展示 1. 引言&#xff1a;多语言语音识别的新突破 随着全球化进程加速&#xff0c;跨语言交流需求日益增长。传统语音识别系统往往局限于单一语言支持&#xff0c;难以满足真实场景下的多语种混合输入需求。阿里通义实验室推出…

YOLOv10官版镜像训练技巧分享,提速又省显存

YOLOv10官版镜像训练技巧分享&#xff0c;提速又省显存 在深度学习目标检测领域&#xff0c;YOLO 系列一直以高效、实时著称。随着 YOLOv10 的发布&#xff0c;其“端到端无 NMS”设计进一步打破了传统推理流程的延迟瓶颈&#xff0c;成为边缘部署和高吞吐场景的新宠。然而&am…

电商人像批量抠图新方案|CV-UNet大模型镜像助力提效

电商人像批量抠图新方案&#xff5c;CV-UNet大模型镜像助力提效 1. 引言&#xff1a;电商图像处理的效率瓶颈与破局之道 在电商平台日益激烈的竞争环境下&#xff0c;商品主图的质量直接影响点击率和转化率。尤其对于服饰、美妆、配饰等依赖视觉呈现的类目&#xff0c;高质量…

Qwen3-Embedding-0.6B功能测试:支持编程语言代码嵌入验证

Qwen3-Embedding-0.6B功能测试&#xff1a;支持编程语言代码嵌入验证 1. 背景与技术价值 随着大模型在信息检索、语义理解与代码智能等领域的广泛应用&#xff0c;高质量的文本嵌入&#xff08;Text Embedding&#xff09;能力成为构建下游应用的关键基础设施。Qwen3-Embeddi…

AI智能二维码工坊实战教程:产品防伪二维码系统

AI智能二维码工坊实战教程&#xff1a;产品防伪二维码系统 1. 教程目标与背景 1.1 为什么需要本地化二维码处理系统&#xff1f; 在当前数字化产品管理中&#xff0c;二维码已成为连接物理世界与数字信息的核心载体。尤其在产品防伪、溯源、营销互动等场景中&#xff0c;企业…

情感计算未来展望:Emotion2Vec+ Large在人机交互的应用

情感计算未来展望&#xff1a;Emotion2Vec Large在人机交互的应用 1. 引言&#xff1a;语音情感识别的技术演进与应用前景 随着人工智能技术的不断进步&#xff0c;人机交互正从“功能驱动”向“情感感知”迈进。传统语音识别系统仅关注“说了什么”&#xff0c;而现代情感计…

MGeo开源模型安全性评估:数据隐私保护措施

MGeo开源模型安全性评估&#xff1a;数据隐私保护措施 1. 技术背景与问题提出 随着地理信息系统的广泛应用&#xff0c;地址相似度匹配在电商、物流、城市治理等领域发挥着关键作用。MGeo作为阿里开源的中文地址领域实体对齐模型&#xff0c;能够高效识别语义相近但表述不同的…

MGeo在物流系统中的实际应用,落地方案详解

MGeo在物流系统中的实际应用&#xff0c;落地方案详解 1. 引言&#xff1a;物流场景下的地址匹配挑战 在现代物流系统中&#xff0c;高效准确的地址处理能力是保障配送效率、降低运营成本的核心环节。无论是订单系统、仓储管理还是末端派送&#xff0c;都依赖于对海量地址信息…