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

[PaddlePaddle飞桨] PaddleSpeech-自动语音识别-小模型部署

PaddleSpeech的GitHub项目地址
环境要求:

gcc >= 4.8.5
paddlepaddle <= 2.5.1
python >= 3.8
OS support: Linux(recommend), Windows, Mac OSX

pip下载指令:

python -m pip install paddlepaddle-gpu==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple  pip install paddlespeech==1.4.1

小模型配置代码:

from paddlespeech.cli.asr.infer import ASRExecutorASR_MODELS = ['conformer_wenetspeech-zh-16k', 'conformer_online_wenetspeech-zh-16k','conformer_u2pp_online_wenetspeech-zh-16k','conformer_online_multicn-zh-16k', 'conformer_aishell-zh-16k', 'conformer_online_aishell-zh-16k','transformer_librispeech-en-16k', 'deepspeech2online_wenetspeech-zh-16k','deepspeech2offline_aishell-zh-16k','deepspeech2online_aishell-zh-16k', 'deepspeech2offline_librispeech-en-16k','conformer_talcs-codeswitch_zh_en-16k']
ASR_MODEL = 'conformer_wenetspeech'
ASR_EXECUTOR = ASRExecutor()

音频文件保存代码:

import io
import os
import uuid
import soundfile as sf
# 将音频数据转换并保存为16kHz采样率、16位量化深度、单声道的WAV文件
def save_audio_file(file_path, file_content):# 生成一个唯一的文件名unique_filename = str(uuid.uuid4()) + ".wav"# 确保目录存在if not os.path.exists(file_path):os.makedirs(file_path)try:# 将文件流转换为音频数据audio_data, sample_rate = sf.read(io.BytesIO(file_content.read()))# 构建完整的文件路径file_path_with_file_name = os.path.join(file_path, unique_filename)# # 重采样音频数据到16kHz,单声道,16位if sample_rate != 16000:from scipy.signal import resamplenum_samples = int(len(audio_data) * (16000 / sample_rate))audio_data = resample(audio_data, num_samples)sample_rate = 16000# 保存音频数据为16位,16kHz,单声道的WAV文件sf.write(file_path_with_file_name, audio_data, 16000, subtype='PCM_16')return file_path_with_file_name, sample_rateexcept Exception as e:print(f"Error saving file: {e}")return None

获取语音识别结果代码:

import os
# 获取指定文件的语音识别结果
def get_text_with_asr(file_path_with_file_name, sample_rate):if not os.path.exists(file_path_with_file_name):return Noneasr_result = ASR_EXECUTOR(audio_file=file_path_with_file_name,model=ASR_MODEL,# sample_rate=sample_rate,# lang='zh')return asr_result

音频转文字代码:

import os
# 音频转文字(上传音频文件)
def audio_to_text(file_content, file_name):file_path_without_file_name = '.' + STATIC_FILE_PATH + "/"if not os.path.exists(file_path_without_file_name):os.makedirs(file_path_without_file_name)file_path_with_file_name, sample_rate = save_audio_file(file_path_without_file_name, file_content)asr_result = get_text_with_asr(file_path_with_file_name, sample_rate)return asr_result
http://www.lryc.cn/news/399200.html

相关文章:

  • redis查询慢,你们是如何排查优化的?(总结篇)
  • Docker 容器出现 IP 冲突
  • paddlepaddle2.6,paddleorc2.8,cuda12,cudnn,nccl,python10环境
  • 【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(上)
  • 如何在Linux上如何配置虚拟主机
  • c语言alpha-beta剪枝六子棋
  • 基于PyTorch深度学习实践技术应用
  • 数据湖仓一体(五)安装spark
  • 项目收获总结--本地缓存方案选型及使用缓存的坑
  • java使用poi-tl模版引擎导出word之if判断条件的使用
  • 扩散的魔法:如何打造未来生物打印?
  • Bag of mice(概率dp)
  • Python的基础语法——持续更新版
  • 百度智能云将大模型引入网络故障定位的智能运维实践
  • 晚上定时编译android系统
  • 轻薄鼠标的硬核选购攻略,很多人都在“高性价比”鼠标上栽跟头了
  • Python制作签到系统
  • 面试题007-Java-Spring
  • 后端之路——登录校验前言(Cookie\ Session\ JWT令牌)
  • 【蓄势·致远】 同为科技(TOWE)2024年年中会议
  • 通过git将文件push到github 远程仓库
  • 如何判断服务器是否被攻击
  • 泽众一站式性能测试平台P-One监控指标的意义
  • 前端Canvas入门——一些注意事项
  • 移动互联安全扩展要求测评项
  • 【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会
  • 【python算法学习1】用递归和循环分别写下 fibonacci 斐波拉契数列,比较差异
  • 【邀请函】庭田科技邀您第五届中国国际复合材料科技大会
  • win32:第一个窗口程序-应用程序入口点(part.6)
  • c++ 多边形 xyz 数据 获取 中心点方法,线的中心点取中心值搞定 已解决