300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > ASR自动语音识别代码操作

ASR自动语音识别代码操作

时间:2021-05-14 07:55:36

相关推荐

ASR自动语音识别代码操作

JupyterLab

语音识别操作流程录制语音文件合并为单声道文件导入nemo工具包及asr工具类加载Quartznet中文版预训练模型测试模型识别效果

语音识别操作流程

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

录制语音文件

可以通过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 AudioSegmentsound = AudioSegment.from_wav("audiofiles/Bob.wav")sound = sound.set_channels(1)sound.export("audiofiles/Bob_mono.wav", format="wav")

导入nemo工具包及asr工具类

import numbaimport nemoimport 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"])

进阶内容

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。