一键部署SenseVoice Small语音识别系统|支持情感与事件标签

一键部署SenseVoice Small语音识别系统|支持情感与事件标签

1. 引言

1.1 语音识别技术的演进与需求升级

随着人工智能在语音交互领域的深入应用,传统的自动语音识别(ASR)已无法满足复杂场景下的理解需求。用户不仅希望“听清”说了什么,更希望系统能“听懂”说话时的情绪状态、背景环境信息等上下文语义。

在此背景下,多模态音频理解模型应运而生。这类模型不仅能完成基础的文字转录,还能同步识别语种、情感倾向和声学事件,显著提升智能客服、会议记录、内容审核等应用场景的智能化水平。

1.2 SenseVoice Small:轻量级全能音频理解引擎

本文介绍的SenseVoice Small是由 FunAudioLLM 团队推出的开源音频基础模型,在 small 参数规模下实现了语音识别(ASR)、语种识别(LID)、语音情感识别(SER)和声学事件分类(AEC)四大能力的集成。

相比主流 Whisper 模型:

  • 在相同参数量级下,识别速度更快,短句可达百毫秒内响应;
  • 支持输出情感标签(如开心、愤怒)和事件标签(如掌声、笑声),增强语义理解;
  • 提供 WebUI 界面与 API 接口,便于二次开发与集成。

本镜像为社区开发者“科哥”基于原始项目进行优化构建,包含预配置环境、WebUI 自动启动脚本及中文使用手册,实现开箱即用的一键部署体验


2. 郵像特性与核心功能

2.1 镜像基本信息

项目内容
镜像名称SenseVoice Small根据语音识别文字和情感事件标签 二次开发构建by科哥
基础框架FunAudioLLM/SenseVoice
模型版本SenseVoice-Small
支持语言中文(zh)、英文(en)、粤语(yue)、日语(ja)、韩语(ko)等
输出能力文本 + 情感标签 + 事件标签

说明:该镜像未包含 large 版本模型,large 模型目前尚未开源,需通过阿里云官方服务调用。

2.2 核心功能亮点

多维度音频理解

SenseVoice 不仅完成语音到文本的转换,还提供以下附加信息:

  • 情感识别(SER)

    • 😊 开心 (HAPPY)
    • 😡 生气/激动 (ANGRY)
    • 😔 伤心 (SAD)
    • 😰 恐惧 (FEARFUL)
    • 🤢 厌恶 (DISGUSTED)
    • 😮 惊讶 (SURPRISED)
    • 无表情 = 中性 (NEUTRAL)
  • 声学事件检测(AEC)

    • 🎼 背景音乐 (BGM)
    • 👏 掌声 (Applause)
    • 😀 笑声 (Laughter)
    • 😭 哭声 (Cry)
    • 🤧 咳嗽/喷嚏 (Cough/Sneeze)
    • 📞 电话铃声
    • 🚗 引擎声
    • 🚶 脚步声
    • 🚪 开门声
    • 🚨 警报声
    • ⌨️ 键盘声
    • 🖱️ 鼠标声

这些标签以结构化方式嵌入输出文本中,极大提升了后续 NLP 处理的上下文感知能力。

友好的交互界面

镜像内置 WebUI 系统,具备以下特点:

  • 支持文件上传与麦克风实时录音;
  • 提供多语言选择与高级参数配置;
  • 示例音频一键测试,快速验证效果;
  • 结果可复制,支持 emoji 与纯文本混合展示。

3. 快速部署与运行指南

3.1 启动与访问

启动命令

系统开机后会自动运行 WebUI 服务。若需手动重启,请在终端执行:

/bin/bash /root/run.sh

此脚本将启动webui.py并监听默认端口。

访问地址

在浏览器中打开:

http://localhost:7860

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

3.2 页面布局与功能模块

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

各模块功能如下:

图标功能说明
🎤音频输入支持本地文件上传或麦克风录制
🌐语言选择支持 auto 自动检测及多种语言指定
⚙️高级配置可调整批处理大小、VAD 合并等参数
🚀开始识别触发推理流程
📝识别结果显示带标签的最终文本

4. 使用步骤详解

4.1 步骤一:上传或录制音频

方式一:上传本地音频文件
  1. 点击🎤 上传音频或使用麦克风区域;
  2. 选择支持格式的音频文件(MP3、WAV、M4A 等);
  3. 等待上传完成。
方式二:使用麦克风录音
  1. 点击右侧麦克风图标;
  2. 浏览器请求权限时点击“允许”;
  3. 点击红色按钮开始录音,再次点击停止;
  4. 录音完成后自动加载至识别队列。

建议:保持环境安静,避免回声干扰,推荐使用 16kHz 采样率以上的高质量音频。

4.2 步骤二:选择识别语言

点击🌐 语言选择下拉菜单,选项包括:

语言代码含义推荐场景
auto自动检测(推荐)多语种混合或未知语种
zh中文普通话对话
yue粤语粤语地区用户
en英文英语演讲/访谈
ja日语日语内容识别
ko韩语韩语播客/视频
nospeech无语音仅分析背景音

对于不确定语种的情况,建议使用auto模式,系统将自动判断最优语言路径。

4.3 步骤三:启动识别

点击🚀 开始识别按钮,系统进入推理阶段。

识别耗时参考
音频时长平均处理时间
10 秒0.5 ~ 1 秒
1 分钟3 ~ 5 秒
5 分钟15 ~ 25 秒

实际速度受 CPU/GPU 性能影响,GPU 加速环境下可进一步缩短延迟。

4.4 步骤四:查看识别结果

识别结果将在📝 识别结果文本框中显示,包含三个层次的信息:

  1. 文本内容:准确转录的口语化文字;
  2. 事件标签:出现在句首,表示背景声音;
  3. 情感标签:出现在句尾,反映说话人情绪。
示例解析
🎼😀欢迎收听本期节目,我是主持人小明。😊
  • 事件:🎼 背景音乐 + 😀 笑声
  • 文本:欢迎收听本期节目,我是主持人小明。
  • 情感:😊 开心

这种结构化的输出形式,非常适合用于自动化内容标注、情绪分析报告生成等任务。


5. 高级配置与性能调优

5.1 配置选项说明

点击⚙️ 配置选项展开高级设置:

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

一般情况下无需修改,默认配置已针对常见场景优化。

5.2 提高识别准确率的实践建议

维度最佳实践
音频质量使用 WAV 格式,16kHz 以上采样率,减少压缩损失
环境噪声在安静环境中录制,关闭风扇、空调等背景噪音源
语速控制保持自然语速,避免过快或吞音
语言选择已知语种时明确指定,避免依赖 auto 检测误差
设备选择使用专业麦克风而非笔记本内置 mic

6. 二次开发接口调用示例

6.1 启动本地 API 服务

原始项目中可通过运行api.py启动 RESTful 接口服务。建议修改启动配置以支持跨主机访问:

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

修改host="0.0.0.0"可使 API 被局域网其他设备访问,适用于多机测试或边缘部署场景。

服务启动后,API 地址为:

http://<IP>:8666/api/v1/asr

6.2 Python 客户端调用代码

以下是一个完整的麦克风录音 + API 调用示例:

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.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: raw_text = result_json["result"][0]["raw_text"] text = result_json["result"][0]["text"] if self.emo: event_emo = self._extract_second_bracket_content(raw_text) return f"{event_emo}\n{text}" if event_emo else text else: return 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)

依赖安装

pip install SpeechRecognition PyAudio requests tqdm

该脚本实现了从麦克风采集、临时保存到调用本地 API 的完整链路,适合嵌入到桌面应用或机器人系统中。


7. 常见问题与解决方案

Q1: 上传音频后无反应?

  • 检查点
    • 文件是否损坏?尝试更换其他音频;
    • 格式是否支持?优先使用 WAV 或 MP3;
    • 浏览器是否有错误提示?F12 查看控制台日志。

Q2: 识别结果不准确?

  • 优化方向
    • 提升音频清晰度,避免远距离拾音;
    • 关闭自动增益(AGC)以防失真;
    • 尝试固定语言而非使用auto
    • 减少背景音乐或多人同时说话情况。

Q3: 识别速度慢?

  • 排查建议
    • 检查 CPU/GPU 占用率,避免资源竞争;
    • 音频过长时建议分段处理;
    • 若使用 CPU 推理,考虑升级至 GPU 实例。

Q4: 如何离线运行?

首次运行会自动下载模型至缓存目录:

~/.cache/modelscope/hub/iic/

复制iic文件夹至项目根目录即可实现离线部署。


8. 总结

SenseVoice Small 模型以其高速度、多功能、易部署的特点,成为当前轻量级音频理解任务的理想选择。本文所使用的定制镜像进一步降低了使用门槛,配合 WebUI 和 API 接口,无论是个人开发者还是企业团队都能快速集成到实际业务中。

其支持的情感与事件标签输出,为语音助手、客户情绪监控、内容安全过滤等场景提供了宝贵的上下文信息,是迈向“听得懂”的关键一步。

尽管 large 模型尚未开源,但 small 版本已在多数日常场景中表现出色,结合本地部署带来的数据隐私保障,具有极高的实用价值。


获取更多AI镜像

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

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

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

相关文章

260117卷子改完了 很累

从日本买的衣服马上要到了,明天就穿上 今天好像没干啥 明天加油

科哥GLM-TTS镜像使用心得:简单高效还开源

科哥GLM-TTS镜像使用心得&#xff1a;简单高效还开源 1. 引言 在语音合成&#xff08;TTS&#xff09;技术快速发展的今天&#xff0c;如何实现高质量、低延迟且具备情感表达能力的文本转语音系统&#xff0c;成为开发者和内容创作者关注的核心问题。智谱AI推出的 GLM-TTS 模…

YOLOv9如何快速部署?官方镜像开箱即用入门必看

YOLOv9如何快速部署&#xff1f;官方镜像开箱即用入门必看 1. 镜像环境说明 本镜像基于 YOLOv9 官方代码库构建&#xff0c;预装了完整的深度学习开发环境&#xff0c;集成了训练、推理及评估所需的所有依赖&#xff0c;开箱即用。用户无需手动配置复杂的运行时环境或解决版本…

BGE-M3进阶教程:自定义训练数据微调模型

BGE-M3进阶教程&#xff1a;自定义训练数据微调模型 1. 引言 1.1 业务场景描述 在实际的检索系统中&#xff0c;通用预训练嵌入模型虽然具备良好的基础语义表达能力&#xff0c;但在特定领域&#xff08;如医疗、法律、金融&#xff09;或垂直业务场景下往往表现不足。为了提…

AnimeGANv2校园应用案例:毕业照转动漫纪念册部署

AnimeGANv2校园应用案例&#xff1a;毕业照转动漫纪念册部署 1. 引言 随着人工智能技术的不断演进&#xff0c;风格迁移&#xff08;Style Transfer&#xff09;在图像处理领域的应用日益广泛。尤其是在校园场景中&#xff0c;如何将普通毕业照转化为具有纪念意义的二次元动漫…

从0到1:用RexUniNLU镜像快速构建法律文书解析工具

从0到1&#xff1a;用RexUniNLU镜像快速构建法律文书解析工具 1. 引言&#xff1a;为何选择RexUniNLU构建法律文书解析系统&#xff1f; 在司法、合规与企业法务场景中&#xff0c;法律文书通常包含大量结构复杂、语义密集的信息。传统人工提取方式效率低、成本高&#xff0c;…

FSMN VAD音频质量检测应用:判断有效语音存在性

FSMN VAD音频质量检测应用&#xff1a;判断有效语音存在性 1. 引言 在语音处理系统中&#xff0c;准确识别音频中的有效语音片段是至关重要的预处理步骤。传统的语音活动检测&#xff08;Voice Activity Detection, VAD&#xff09;方法往往依赖于简单的能量阈值或频谱特征&a…

Qwen3-1.7B多语言支持实测,中文表现优秀

Qwen3-1.7B多语言支持实测&#xff0c;中文表现优秀 1. 背景与测试目标 随着全球化应用的不断扩展&#xff0c;大语言模型的多语言能力成为衡量其通用性和实用性的关键指标。阿里巴巴于2025年4月29日发布的通义千问Qwen3系列&#xff0c;包含从0.6B到235B参数的多种规模模型&…

系统信息一目了然:设备状态和模型版本随时查看

系统信息一目了然&#xff1a;设备状态和模型版本随时查看 1. 功能概述与核心价值 在语音识别系统的实际使用过程中&#xff0c;了解当前运行环境的软硬件配置、模型加载状态以及系统资源占用情况&#xff0c;是保障服务稳定性和排查问题的关键。Speech Seaco Paraformer ASR…

Youtu-2B保姆级教程:从零开始部署腾讯优图轻量大模型完整指南

Youtu-2B保姆级教程&#xff1a;从零开始部署腾讯优图轻量大模型完整指南 1. 引言 1.1 学习目标 本文旨在为开发者和AI爱好者提供一份从零开始部署Youtu-LLM-2B模型的完整实践指南。通过本教程&#xff0c;您将掌握如何在本地或云环境中快速部署腾讯优图推出的轻量级大语言模…

Paraformer-large自动化部署:结合shell脚本实现开机自启

Paraformer-large自动化部署&#xff1a;结合shell脚本实现开机自启 1. 背景与需求分析 随着语音识别技术在智能客服、会议记录、内容审核等场景的广泛应用&#xff0c;离线高精度语音转写方案的需求日益增长。阿里达摩院开源的 Paraformer-large 模型凭借其工业级识别精度和…

从零部署Supertonic TTS|附已配置镜像快速上手

从零部署Supertonic TTS&#xff5c;附已配置镜像快速上手 1. 前言 Supertonic 是一款开源的设备端文本转语音&#xff08;TTS&#xff09;系统&#xff0c;专注于在本地实现高速、低延迟、高隐私性的语音合成。其核心优势在于完全脱离云端依赖&#xff0c;所有推理过程均在本…

BGE-M3功能测评:密集+稀疏+多向量检索真实表现

BGE-M3功能测评&#xff1a;密集稀疏多向量检索真实表现 1. 技术背景与核心价值 在当前信息爆炸的时代&#xff0c;高效、精准的文本检索已成为搜索引擎、推荐系统和RAG&#xff08;Retrieval-Augmented Generation&#xff09;架构中的关键环节。传统单一模式的嵌入模型往往…

AD导出Gerber文件教程:钻孔层与叠层匹配详解

AD导出Gerber文件实战&#xff1a;避开钻孔与叠层不匹配的“坑”在PCB设计这条路上&#xff0c;你有没有经历过这样的时刻&#xff1f;板子寄回来了——焊盘上的过孔偏了半个身位&#xff0c;内层信号没连通&#xff0c;或者更离谱的是&#xff0c;盲孔居然穿透到了底层。返工一…

Sambert实时合成延迟优化:流式输出部署实战教程

Sambert实时合成延迟优化&#xff1a;流式输出部署实战教程 1. 引言 1.1 业务场景描述 在语音交互、智能客服、有声书生成等实际应用中&#xff0c;用户对语音合成&#xff08;TTS&#xff09;系统的响应速度提出了更高要求。传统TTS系统通常采用“全文生成后播放”的模式&a…

Open Interpreter避坑指南:常见问题与解决方案

Open Interpreter避坑指南&#xff1a;常见问题与解决方案 1. 引言 1.1 本地AI编程的兴起与Open Interpreter定位 随着大模型在代码生成领域的深入应用&#xff0c;开发者对“自然语言驱动编程”的需求日益增长。然而&#xff0c;多数云端AI编程工具受限于运行时长、文件大小…

Qwen1.5-0.5B技术揭秘:高效设计

Qwen1.5-0.5B技术揭秘&#xff1a;高效设计 1. 引言 1.1 技术背景与挑战 随着大语言模型&#xff08;LLM&#xff09;在自然语言处理领域的广泛应用&#xff0c;如何在资源受限的环境中实现多任务智能服务成为工程落地的关键难题。传统方案通常采用“专用模型堆叠”架构——…

万物识别-中文-通用领域对比评测:与ResNet、EfficientNet识别精度对比

万物识别-中文-通用领域对比评测&#xff1a;与ResNet、EfficientNet识别精度对比 1. 引言 1.1 技术选型背景 在当前计算机视觉任务中&#xff0c;图像分类作为基础能力&#xff0c;广泛应用于内容审核、智能相册、工业质检等多个场景。随着深度学习模型的不断演进&#xff…

OCR技术落地实践|利用DeepSeek-OCR-WEBUI实现文档结构化转换

OCR技术落地实践&#xff5c;利用DeepSeek-OCR-WEBUI实现文档结构化转换 1. 业务背景与痛点分析 在企业级应用中&#xff0c;大量纸质单据如采购订单、发票、物流运单等仍需人工录入系统。这一过程不仅效率低下&#xff0c;还容易因人为疏忽导致数据错误。以某零售企业的采购…

从语音到双语字幕全流程|集成FRCRN降噪镜像的离线解决方案

从语音到双语字幕全流程&#xff5c;集成FRCRN降噪镜像的离线解决方案 1. 引言&#xff1a;构建完全离线的双语字幕生成系统 在视频内容创作日益普及的今天&#xff0c;为外语视频添加中文字幕已成为刚需。尽管市面上已有多种字幕生成工具&#xff0c;但大多数依赖云端API接口…