Kaldi语音识别:基于aidatatang模型实现自制语音数据的识别

本文介绍了在使用aidatatang语音识别模型时遇到的两个问题及其解决方案:一是如何自动清空识别结果文本,二是解决模型识别新数据不更新的问题。此外,还分享了如何使用sox工具将.m4a音频转换为.wav格式,以及在转换过程中遇到的问题和解决办法。最后,文章提到识别任务的运行过程和识别结果的准确性。
摘要由CSDN通过智能技术生成

aidatatang简介及相关安装、配置等见上一篇文章:Kaldi语音识别:aidatatang_asr开源模型实现中文语音识别详细及遇到的问题【亲自跑通】

一、面临的问题

用CVTE提供的测试集试验跑通了aidatatang后,需要根据自己的需求来确定问题。

1.1 模型运行后测试结果的文本覆盖问题
问题描述
如果不对项目文件作修改,每次跑模型都会在同一个输出文本文件中以’a’的方式写入新的识别结果,它并不会每次运行自动清空Result里的文本,这样看起来会比较乱,如下:
在这里插入图片描述
问题解决
找到写result的python文件,路径/home/keep/Keep/kaldi/egs/aidatatang_asr/local/extract_decode_log.py,将下面的代码添加到第9行至第10行之间。

with open(outfile, 'w') as n:
	n.write("") 

即:
在这里插入图片描述
这样就实现了每次运行都会自动清空result中的文本。

1.2更换WAVPath中数据后的识别结果没有更新
问题描述
在运行完一次识别任务后,识别结果会放在指定的路径中的名为rec_2021xxxx.txt(xxx表示日期)文本文件中。更改WAVpath中的需识别的测试数据集.wav后,在第二次以及之后运行识别任务不会更改之前的识别内容,即,模型仍然将之前加载进来的测试数据作为需要识别的任务进行识别并输出。
问题解决

待补充

二、制作自己的语音数据作输入

这里用sox工具来制作.wav数据,语音文件原格式是通过iPhone录音录制的.m4a格式。

SoX 可以读取和写入常见格式的音频文件,并在此过程中选择性的加入一些声音效果。它可以组合多个输入源及合成音效,在许多系统上也可以作为音频播放器或多轨录音机使用。

SoX 工具在大部分 Linux 系统上都可以直接通过软件包管理器安装(如sudo apt-get install sox),Mac 系统上则可以使用 brew install sox命令。

这里使用Sox转换m4a的指令后出现

sox FAIL formats: no handler for file extension `m4a'

查阅了相关资料,发现其他人说sox不能转m4a格式

# sox 不行, ffmpeg 很麻烦,用 avconv 很简单。安装 如果没有就安装
# apt-get install libav-tools 

avconv -i xx.m4a  xx.wav

暂时用一个在线网页版转换代替:在线转音频格式

搞到了待检测语音文件16bit,16000hz的.wav文件,将其放置在WAVpath文件夹中。

sox工具的相关使用感谢:https://blog.csdn.net/qq_39516859/article/details/87980189

三、运行识别任务

aidatatang_asr/中键入./run.sh WAVpath命令后,开始识别任务。
在这里插入图片描述

经过了大约8~9分钟的等待(有点久,还不知道为啥),识别完毕,结果放置在目录exp/chain/tdnn_1a_sp/decode_offline_test_20211110/rec_20211110.txt

查看识别结果:
在这里插入图片描述

前面的拼音对应的就是答案标签,录制环境是在略微嘈杂的实验室内(身边同学恰好在讨论问题),识别正确率76%。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值