SenseVoice调研记录
【语音】作为人工智能的【启蒙钥匙】,不仅率先踏出实验室大门,步入寻常百姓家,也成为了人类与AI初次触电的【桥接技术】。初期,智能语音技术的研究重心落在了语音识别领域,致力于使机器具备理解人类语言的能力。
回顾历史,AT&T贝尔实验室推出的Audrey系统,作为电子计算机领域的先驱,成功辨识了10个英文数字,开启了这一征程。1988年,李开复博士突破性地构建了首个运用隐马尔可夫模型的大词汇量语音识别系统Sphinx。1997年,Dragon NaturallySpeaking的问世,标志着全球首个供消费者使用的连续语音输入系统的商业化。而至2009年,微软Windows 7操作系统内置的语音功能,进一步普及了该技术。
转折点发生在2011年,iPhone 4S携Siri登场,智能语音技术由此迈入【互动】新纪元。同年,谷歌内部启动了Google语音搜索的测试,预告着这一功能即将登上Google的舞台。
从单纯识别到实现互动,这一跨越为人机交互的繁盛奠定了坚实基础。时至今日,语音交互技术已渗透至智能家居、智能驾驶乃至机器人领域,在AI技术迭代的推动下愈发流畅,应用生态呈现多样化。技术层面,各大云服务提供商通过API形式对外开放其AI语音服务,极大促进了开发者基于此的创新应用开发。
近年来,随着大规模预训练模型的兴起,直接在模型层面上的开放与定制化调整日益受到瞩目。开发者能够通过模型训练与微调,深度优化模型性能,进而提升其在特定应用场景下的部署效能,为语音技术的广泛应用开辟了新的路径。
GPT-SoVITS作为一个标志性的语音合成框架,已经为行业树立了高质量语音生成的标准。它通过深度学习模型,尤其是基于WaveNet和Transformer架构的创新,实现了语音自然度和真实感的显著提升,为用户带来了接近真人的听觉体验,在上线后便获得极高热度,仅需提供 5 秒语音样本,便可收获相似度达到 80%~95% 的克隆语音。
随着技术的不断迭代与需求的日益多元化,ChatTTS作为后起之秀,在继承SoVITS等前辈优点的同时,进一步聚焦于对话场景的优化与个性化表达,能实现更加流畅、连贯及富含情感色彩的语音输出,甚至包括语气词、笑声。
阿里通义实验室也发布了最新的研究成果音频基座大模型FunAudioLLM,其中包括两大模型SenseVoice和CosyVoice,这一发布标志着阿里在语音技术领域取得了重大进展,并且是对现有技术如GPT-SoVITS和ChatTTS的重要补充和提升。
如上文所述,FunAudioLLM主要包括两大模型SenseVoice和CosyVoice。其中:
SenseVoice:精准多语言识别与情感辨识。
CosyVoice:模拟音色与提升情感表现力
在有了基本了解之后,下面分别对其架构进行简要说明。我们重点关注SenseVoice。
SenseVoice 是一个语音基础模型,具有多种语音理解功能,包括 ASR、LID、SER 和 AED。为了适应不同的需求,提出了两种不同规模和架构的模型SenseVoice-Small和SenseVoice-Large。
SenseVoice-Small :一个仅编码器模型,经过优化以实现快速的语音理解。它提供了高速处理能力,同时支持5种语言。(中英韩日粤)
SenseVoice-Large:一个编码器-解码器模型,旨在实现更精确的跨语言范围的语音理解。它在准确性方面表现出色,并支持广泛的语言能力。

本文以Ubuntu 24.04.2 LTS系统为例
# 克隆代码
git clone https://github.com/FunAudioLLM/SenseVoice.git
cd SenseVoice
# 创建一个名为venv 的虚拟环境。
python -m venv .venv
# 进入虚拟环境
source .venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 下载模型
modelscope download --model iic/SenseVoiceSmall --local_dir model/iic/SenseVoiceSmall
# 16k中文通用VAD模型:可用于检测长语音片段中有效语音的起止时间点。FSMN-Monophone VAD是达摩院语音团队提出的高效语音端点检测模型,用于检测输入音频中有效语音的起止时间点信息,并将检测出来的有效音频片段输入识别引擎进行识别,减少无效语音带来的识别错误。
modelscope download --model iic/speech_fsmn_vad_zh-cn-16k-common-pytorch --local_dir model/iic/speech_fsmn_vad_zh-cn-16k-common-pytorch
# 启动服务
python api.py
由于机器上没有GPU,启动会报错,如图

解决方法:
修改api.py的这行代码,不使用GPU
m, kwargs = SenseVoiceSmall.from_pretrained(model=model_dir, device=os.getenv("SENSEVOICE_DEVICE", "cuda:0"))
修改为:
m, kwargs = SenseVoiceSmall.from_pretrained(model=model_dir)
再次启动服务,启动成功

使用postman/APIpost工具调用接口进行语音转写
http://172.16.12.194:50000/api/v1/asr

返回转写结果
