AI工具-基于funasr打造离线语音转写工具

2024-09-05 23:28

本文主要是介绍AI工具-基于funasr打造离线语音转写工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【说在前面】

  • 该用例基于魔塔社区中发布的预训练模型和funasr构建。仅支持单声道、16KHz、16位采样wav语音文件的离线转写。
  • 过程中没有用到onnx模型
  • 不支持多线程的并发,但是可以基于多进程实现并发
  • asr工具构建过程中一定要加载vad,否则推理过程中内存会被撑爆

【预训练模型】

所有预训练模型均可在魔塔社区下载

  • asr:iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
  • vad:iic/speech_fsmn_vad_zh-cn-16k-common-pytorch
  • punc:iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch
  • spk:iic/speech_campplus_sv_zh-cn_16k-common

工具构建

话不多说,直接上代码:

class ASRModel:def __init__(self):self.local_model_path = cfg["model"]["local_path"]self.input_batch_size = cfg["model"]["input_batch_size"] if "input_batch_size" \in cfg["model"] else 10# ASRself.model = self.local_model_path + "speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch"# voice activity detectionself.vad_model = self.local_model_path + "speech_fsmn_vad_zh-cn-16k-common-pytorch"# punctuation detectionself.punc_model = self.local_model_path + 'punc_ct-transformer_zh-cn-common-vocab272727-pytorch'# speaker separateself.spk_model = self.local_model_path + 'speech_campplus_sv_zh-cn_16k-common'self.asr_model = Nonedef load_model(self):self.asr_model = AutoModel(model=self.model,vad_model=self.vad_model,punc_model=self.punc_model,spk_model=self.spk_model,device="cuda:0")def generate(self, wav_file):if len(wav_file) < 0:return ""else:if self.asr_model is not None:asr_output = self.asr_model.generate(input=wav_path, batchsize=self.input_batch_size)return asr_output

上述核心代码基于funasr构建。可以根据自身需求自由组合vad、punc和spk。

这篇关于AI工具-基于funasr打造离线语音转写工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140357

相关文章

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析