ASR自动语音识别代码操作

语音识别操作流程

  1. 使用音频软件或手机录制语音指令音频文件
  2. 执行语音格式转换及声道合并代码块
  3. 导入ASR工具包及相关工具类
  4. 加载模型,指定语音路径,进行语音识别

录制语音文件

可以通过PC端录音软件或者手机录制语音文件,文件类型需统一转换为wav格式,合并为单声道

  • 通过录音软件Audacity录制
  • 通过手机录制的mp3或m4a格式的音频需要转成wav格式可执行以下转换代码:
import os,sys # 导入操作系统相关模块
folder = 'audiofiles/' # 定义文件夹
from pydub import AudioSegment # 从pydub音频工具库中导入AudioSegment工具类
formats_to_convert = ['.m4a','.mp3'] # 定义需要被转换的语音文件格式
for (dirpath, dirnames, filenames) in os.walk("audiofiles/"):# 从指定文件夹中遍历文件夹路径、名称、及文件名
    for filename in filenames: #遍历所有音频文件
        if filename.endswith(tuple(formats_to_convert)):# 判断如果音频文件后缀是以m4a或者mp3结尾的
            filepath = dirpath + '/' + filename # 定义音频文件完整的路径包含文件名
            (path, file_extension) = os.path.splitext(filepath) # 将文件路径进行切分
            file_extension_final = file_extension.replace('.', '') # 用空来替换“.”,拿到干净的MP3或者m4a字符
            try:
                track = AudioSegment.from_file(filepath,file_extension_final) # 调用AudioSegment工具类中的from_file函数进行语音处理
                wav_filename = filename.replace(file_extension_final, 'wav')# 将mp3/m4a后缀替换成wav后缀
                wav_path = dirpath + '/' + wav_filename#重新组成音频路径
                print('CONVERTING: ' + str(filepath))
                file_handle = track.export(wav_path, format='wav')#将格式转换后的音频文件进行导出
#                 os.remove(filepath)
            except:
                print("ERROR CONVERTING " + str(filepath))           

合并为单声道文件

将转化好的wav格式的音频文件合并为nemo可识别的单声道语音文件,可执行以下代码块:

from pydub import AudioSegment
sound = AudioSegment.from_wav("audiofiles/Bob.wav")
sound = sound.set_channels(1)
sound.export("audiofiles/Bob_mono.wav", format="wav")

导入nemo工具包及asr工具类

import numba
import nemo
import nemo.collections.asr as nemo_asr
# nemo.__version__
# nemo_asr.models.EncDecCTCModel.list_available_models()

加载Quartznet中文版预训练模型

quartznet =
nemo_asr.models.EncDecCTCModel.from_pretrained(model_name="QuartzNet15x5Base-En")

测试模型识别效果

quartznet.transcribe(paths2audio_files=["audiofiles/Bob_mono.wav"])

1

进阶内容

(注:内容来源于NVADA的讲座)2
3

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@Lucia1314

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

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

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

打赏作者

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

抵扣说明:

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

余额充值