linux语音识别 Linux语音识别怎么做
今天给各位分享linux语音识别的知识,其中也会对Linux语音识别怎么做进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
嵌入式Linux平台下百度AI语音识别的应用
对于嵌入式系统而言,语音识别硬件组成要考虑很多其它因素,首先由于成本的限制,一般使用定点DSP,这意味着算法的复杂度受到限制;其次,对产品化有各种严格的限制,这就需要一个高度集成的硬件DSP,因此最理想的硬件组成是系统级的芯片。
一般采用的是一个16位结构的微控制器,将MCU、A/D、D/A、RAM、ROM集成在一块芯片上,具有很高的集成度。同时具有较高运算速度的16×16位的乘法语音和内积运算指令,CPU最高可达时钟49MHz,因此在复杂的数字信号处理方面既非常便利又比专用的DSP芯片便宜得多。并具有12位ADC,和14位DAC保证音频精度,配置带自动增益控制(AGC)的麦克风输入方式,为语音处理带来了极大的方便。既具有体积小、集成度高、可靠性好的特点,又具有较强的中断处理能力、高性能的价格比和功能强、效率高的指令系统及低功耗、低电压的特点,所以非常适合用于嵌入式语音识别系统。
以SR160X为核心的嵌入式语音识别系统硬件的电路系统,主要包括麦克风输入电路、ADC、DAC、功放输出电路、键盘电路和各种通信电路等,语音保存到SPI Flash存储器中。非特定人语音识别要经过语音训练后才能识别,将语音训练过程中建立的参考模式库和从待识别语音信号中提取的特征参数都存放在外扩的SPI Flash中,这样就可以保证掉电后重新开机继续识别。语音识别系统软件主程序由语音训练程序、语音识别程序、语音播放程序、中断程序、初始化程序等子程序组成。由于嵌入式平台存储资源少、实时性要求高的特点,因此算法在保证识别效果的前提下要尽可能优化。
软件包括A/D变换、预加重、分帧和加窗、端点检测、特征参数提取、放宽端点限制的DTW算法,最后识别结果输出。
在应用层软件考虑到用户的实际需求,增加了能快速开发的虚拟软件开发技术,能快速完成产品。
语音识别:kaldi的安装与yes no模型、aishell试运行
本文为作者原创,转载请附上来源;
作者: chaves
零、本机环境:
Linux gpu-name 3.10.0-693.21.1.el7.x86_64#1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
一、安装依赖
二、克隆代码
进入工作目录:
三、编译kaldi
按照里面的步骤执行:
(1)到tools/目录并按照那里的安装说明进行。
(2)到src/目录并按照那里的安装说明进行
按照他的说明执行,先执行
现在kaldi就编译好了,接下来我们就可以跑demo了,kaldi有很多demo在egs
四、运行demo
1.先跑一个简单的,进入egs/yesno/:
看看效果很不错;wer为0;当然这个只是一个非常简单的英文yes no的语音识别;
2.接下来我们来一个中文语音识别的demo【aishell】,进入egs/aishell
运行egs/aishell/s5/run.sh
报错:
local/aishell_train_lms.sh: train_lm.sh is not found. That might mean it's not installed
local/aishell_train_lms.sh: or it is not added to PATH
local/aishell_train_lms.sh: Use the script tools/extras/install_kaldi_lm.sh to install it
2)提醒安装kaldi-lm;应该是kaldi-语言模型
执行以下:
提示:
Installation of kaldi_lm finished successfully
Please source tools/env.sh in your path.sh to enable it
3)再次执行egs/aishell/s5/run.sh
报错:
steps/make_mfcc_pitch.sh--cmd queue.pl--mem 2G--nj 10 data/train exp/make_mfcc/train mfcc
utils/validate_data_dir.sh: Successfully validated data-directory data/train
steps/make_mfcc_pitch.sh: [info]: no segments file exists: assuming wav.scp indexed by utterance.
queue.pl: Error submitting jobs to queue(return status was 32512)
queue log file is exp/make_mfcc/train/q/make_mfcc_pitch_train.log, command was qsub-v PATH-cwd-S/bin/bash-j y-l arch=*64*-o exp/make_mfcc/train/q/make_mfcc_pitch_train.log-l mem_free=2G,ram_free=2G-t 1:10/data/xxx/speech/kaldi/egs/aishell/s5/exp/make_mfcc/train/q/make_mfcc_pitch_train.sh>>exp/make_mfcc/train/q/make_mfcc_pitch_train.log 2>&1
Output of qsub was: sh: qsub: command not found
报错原因是因为;cmd.sh里面是queue.pl(集群模式)。要修改为run.pl(本地模式)
export train_cmd="run.pl--mem 4G"
export decode_cmd="run.pl--mem 8G"
export mkgraph_cmd="run.pl--mem 12G"
我这里成功了,但是我要提醒大家,这里前面是传统模型,使用的是CPU,要很久很久才能运行完,所以可以在试运行的时候减少了训练样本;
4)减少训练样本,进入目录修改训练样本量
5)再次运行./run.sh,发现报错:
Usage: optimize_alpha.pl alpha1 perplexity@alpha1 alpha2 perplexity@alpha2 alpha3 perplexity@alph3 at/data/xxx/speech/kaldi/tools/kaldi_lm/optimize_alpha.pl line 23.
在google一艘就发现:
网上也有说明:
6)因此修改:
vim tools/kaldi_lm/train_lm.sh
修改 heldout_sent<10;
7)中途报错:
报误1:
如上图错误,需要手动删除data/train_sp/feats.scp
报错2:
所以按照上述执行:nvidia-smi-c 3
再次执行run.sh,这里我将nnet3之前的代码都注释掉,并删除了data/train_sp/feats.scp;
开源免费的语音识别 ASR 工具
开源免费的语音识别 ASR工具提供了多种选择,以满足不同需求和场景。以下是其中一些工具的详细介绍:
1. Athena:作为Apache 2.0开源的序列到序列语音转文本引擎,适合研究人员和开发者进行端到端语音处理,支持ASR、语音合成等任务,所有语言模型基于TensorFlow。
2. Buzz:基于OpenAI Whisper,是一个强大的离线语音识别软件,支持多种语言,无需联网,适合隐私保护,适用于Windows、macOS和Linux系统。
3. Coqui:深度学习工具包,使用Mozilla公共许可证,支持多语言转录,提供预训练模型和详细文档。
4. DeepSearch:Mozilla团队的开源项目,基于深度语音研究,支持端到端训练,英语模型预训练,可自定义数据增强。
5. ESPnet:基于PyTorch的语音转文本工具,涵盖多种任务,支持多语言,与Kaldi风格数据处理结合。
6. Flashlight ASR:Facebook AI的高效工具,专为处理大型数据集设计,利用卷积神经网络提升速度。
7. FunASR:阿里巴巴达摩院的开源工具,包含多种功能,如语音识别、VAD等,提供预训练模型和微调支持。
8. Julius:古老的日本语音转文本项目,支持多种语言,轻量级且适合学术研究。
9. Kaldi:专为语音识别研究人员设计,使用C++编写,侧重于传统的声学模型。
10. OpenSeq2Seq:Nvidia开源,用于训练序列到序列模型,尤其适合多卡和分布式计算。
11. PaddleSpeech:Paddlepaddle平台上的工具,支持语音识别、翻译等,中文模型表现优秀。
12. SpeechBrain:促进语音技术研究的工具,支持多种任务,使用PyTorch框架。
13. Tensorflow ASR:基于Tensorflow的深度学习工具,提供多种模型和TPU支持。
14. Vosk:轻量级离线引擎,支持多种语言,适合移动设备。
15. Whisper:OpenAI的超大规模训练语音识别系统,可转录和翻译多种语言。
这些工具各有优势,选择时应根据项目需求、性能要求和系统兼容性来决定。