当前位置: 首页 > article >正文

实时语音转文字(基于NAudio+Whisper+VOSP+Websocket)

今天花了大半天时间研究一个实时语音转文字的程序,目的还包括能够唤醒服务,并把命令提供给第三方。

由于这方面的材料已经很多,我就只把过程中遇到的和解决方案简单说下。源代码开源在AudioWhisper: 实时语音转文字(基于NAudio+Whisper+VOSP+Websocket) (gitee.com)

1、声音录制

这里有三点需要注意的:

1)sampleRate(采样频率)要选择16000,不要选别的,不然Whisper不兼容。

2)声音录制得到的数据是一个个块(block),每次block大概1500byte左右。

3)WAV文件由文件头(共计45个字节)+ 长度标志+Block组+文件尾(大概6个字节)组成,可以直接看NAudio获得相关信息。

2、Whisper使用

也有几点需要注意:

1)不翻墙很难从huggingface.co下载语音模型,可以从Index of / (ggerganov.com)下载

2)需要Net8 的环境,低版本包括NetFramework会卡在ProcessAsync方法上,当然可以换成Process方法

3)处理100个声音块(Block),大概需要3~5秒时间,并不能做到给一段语音就解释这段语音,存在明显的处理性能要求,建议选择好电脑去跑。当然我这边没有从GPU等因素去眼睛了。

4)Whisper的语言包有点怪,感觉是从外国电影翻译学习的,会出现大莫名其妙的的结果,但好在不多,可以根据关键字过滤,比如它会误判存在笑,返回结果为“(笑)”。

5)存在繁体中文的情况,可以采用ChineseConverter方法进行处理。

3、VOSP

Whisper可以的系统初始化时间相对还是可以接受的,在5~10秒左右。而VOSP初始化加载模型需要30~50秒,而且初步测试准确率很低,文字中存在空格。

4、实时语音流程

需要分配多个线程,1一个线程听声音,1个线程解释翻译声音。不能把这两个线程合在一起,原因是翻译声音需要高的计算量。

648ca21c818a4b3082780fa9a6f5e692.png

最后,代码已经上传到git,大家可以直接看,也可以参与编写,AudioWhisper: 实时语音转文字(基于NAudio+Whisper+VOSP+Websocket) (gitee.com)

 


http://www.kler.cn/news/351059.html

相关文章:

  • Java项目-基于springboot框架的智慧外贸系统项目实战(附源码+文档)
  • 【状态机DP】力扣2786. 访问数组中的位置使分数最大
  • window7虚拟机VMware与主机共享文件
  • 数据降维与主成分分析
  • 【力扣 | SQL题 | 每日4题】力扣1164,3293,1308,1270
  • 点云标注工具开发记录(五)之点云文件加载、视角转换
  • 通过激酶找到ChEMBL数据库数据的步骤与代码实现
  • day36 56.合并区间 738.单调递增的数字
  • Elasticsearch文档操作
  • 如何保证Redis和数据库的数据一致性
  • 从一个事故中理解 Redis(几乎)所有知识点
  • ChatGPT丨R语言在生态环境数据统计分析、绘图、模型中的应用
  • 常见ElasticSearch 面试题解析(上)
  • 如何实现安川MP3300运动控制器与西门子1200系列PLC进行ModbusTCP通讯
  • 机器学习探索性数据分析 (EDA)
  • git协同开发流程
  • 中波长线天线耦合的一个方法
  • Java程序发送邮件email
  • API 接口测试步骤
  • 如何从头训练大语言模型: A simple technical report
  • DNS安全概述
  • lua脚本使用cjson转换json时,空数组[]变成了空对象{}
  • 016集——c# 实现CAD类库 与窗体的交互(CAD—C#二次开发入门)
  • Anaconda3与PyCharm安装配置
  • 第十四届中国国际健康产品展览会在沪举办,无限未来品牌大放异彩
  • 界面组件DevExpress WPF v24.1亮点 - 支持全新的字体图标图像