SpringBoot集成语音识别模型FunASR

01 引言

应以为粉丝朋友要求,我们一起学习搭建了一个语言识别模型,并集成SpringBoot项目中。在搭建过程中遇到不少问题,总结一下分享给其他需要的朋友。

官网的给出的Java客户端稍微有点问题,并不能接受到大模型识别的反馈。网上的相关的技术博客也很少,这里帮大家把坑点填平,本文一片文章助你轻松拿下FunASR

02 FunASR简介

FunASR是一个基础语音识别工具包,提供多种功能,包括语音识别(ASR)、语音端点检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离和多人对话语音识别等。FunASR提供了便捷的脚本和教程,支持预训练好的模型的推理与微调。更是通过CPU可以直接跑起来的大模型。

FunASR旨在通过语音识别的学术研究和工业应用之间架起一座桥梁。通过发布工业级语音识别模型的训练和微调,研究人员和开发人员可以更方便地进行语音识别模型的研究和生产,并推动语音识别生态的发展。让语音识别更有趣!

开源仓库地址:https://github.com/modelscope/FunASR

03 FunASR 部署

我们采用Docker技术直接部署,部署的官方指导文档:

https://github.com/modelscope/FunASR/blob/main/runtime/docs/SDK_advanced_guide_online_zh.md

Docker安装的本章不在赘述,之前的文章中已经介绍过安装过程。

3.1 拉取镜像并启动

我们这里使用的是cpu版本的模型:funasr-runtime-sdk-online-cpu-0.1.13。直接拉取镜像并启动:

#拉取镜像
sudo docker pull \
  registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13

# 创建保存模型的文件夹
mkdir -p ./funasr-runtime-resources/models

# 挂载启动镜像
sudo docker run -p 10096:10095 -it --privileged=true \
  -v $PWD/funasr-runtime-resources/models:/workspace/models \
  registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.13

3.2 启动服务端

docker启动之后,启动 funasr-wss-server-2pass服务程序。

因为docker启动之后,直接进入到workspace下。可以继续使用cd 等命令

启动脚本

cd FunASR/runtime
nohup bash run_server_2pass.sh \
  --certfile 0 \
  --download-model-dir /workspace/models \
  --vad-dir damo/speech_fsmn_vad_zh-cn-16k-common-onnx \
  --model-dir damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-onnx  \
  --online-model-dir damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-online-onnx  \
  --punc-dir damo/punc_ct-transformer_zh-cn-common-vad_realtime-vocab272727-onnx \
  --lm-dir damo/speech_ngram_lm_zh-cn-ai-wesp-fst \
  --itn-dir thuduj12/fst_itn_zh \
  --hotword /workspace/models/hotwords.txt > log.txt 2>&1 &
  
# 如果您想关闭ssl,增加参数:--
虽然给定引用未直接提及使用FunASRSpring Boot实现实时语音识别的内容,但可以结合这些引用中的思路和通用技术知识给出大致方向。 ### 1. 了解FunASRSpring Boot FunASR是一个轻量级、高性能、模块化的端到端语音识别工具包,而Spring Boot是用于简化Spring应用开发的框架。结合二者实现实时语音识别,可利用Spring Boot搭建后端服务,FunASR进行语音识别。 ### 2. 环境准备 首先要安装好Java开发环境(JDK)和Maven,因为Spring Boot项目通常使用Maven进行依赖管理。同时,要安装FunASR,可参考其官方文档进行安装配置。 ### 3. 创建Spring Boot项目 可以使用Spring Initializr(https://start.spring.io/ )来快速创建一个Spring Boot项目,添加必要的依赖,如Spring Web用于创建RESTful接口。以下是一个简单的`pom.xml`示例: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` ### 4. 集成FunASRSpring Boot项目中集成FunASR。可以通过调用FunASR的API来实现语音识别功能。可以将FunASR封装成一个工具类,在Spring Boot服务中调用该工具类。以下是一个简单的伪代码示例: ```java import java.io.File; // 假设这是封装的FunASR工具类 class FunASRUtil { public static String recognizeSpeech(File audioFile) { // 调用FunASR的API进行语音识别 // 这里需根据FunASR实际的调用方式实现 return "识别结果"; } } // Spring Boot控制器 import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; @RestController public class SpeechRecognitionController { @PostMapping("/recognize") public String recognize(@RequestParam("audio") MultipartFile audioFile) throws IOException { File tempFile = File.createTempFile("audio", ".wav"); audioFile.transferTo(tempFile); String result = FunASRUtil.recognizeSpeech(tempFile); tempFile.delete(); return result; } } ``` ### 5. 实现实时语音传输 要实现实时语音识别,需要实现实时语音传输。可以使用WebSocket等技术将语音流实时传输到Spring Boot服务,然后在服务端调用FunASR进行实时识别。可以参考SpringAI + WebSocket + 语言识别 + 语言合成实现AI实时语音交互的思路(如引用[1]),在Spring Boot集成WebSocket,实现语音流的实时接收和处理。 ### 6. 测试和优化 完成上述步骤后,对系统进行测试,检查实时语音识别的准确性和性能。根据测试结果进行优化,如调整FunASR的参数、优化Spring Boot服务的性能等。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值