前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于PaddlePaddle语音识别模型

基于PaddlePaddle语音识别模型

作者头像
夜雨飘零
修改2020-08-05 16:11:45
1.4K0
修改2020-08-05 16:11:45
举报
文章被收录于专栏:CSDN博客

原文博客:Doi技术团队 链接地址:https://blog.doiduoyi.com/authors/1584446358138 初心:记录优秀的Doi技术团队学习经历

语音识别

本项目是基于PaddlePaddle的DeepSpeech项目修改的,方便训练中文自定义数据集。

本项目使用的环境:

环境搭建

  • 请提前安装好显卡驱动,然后执行下面的命令。# 卸载系统原有docker sudo apt-get remove docker docker-engine docker.io containerd runc # 更新apt-get源 sudo apt-get update # 安装docker的依赖 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common # 添加Docker的官方GPG密钥: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 验证拥有指纹 sudo apt-key fingerprint 0EBFCD88 # 设置稳定存储库 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
  • 安装Docker# 再次更新apt-get源 sudo apt-get update # 开始安装docker sudo apt-get install docker-ce # 加载docker sudo apt-cache madison docker-ce # 验证docker是否安装成功 sudo docker run hello-world
  • 安装nvidia-dockerwget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1-1_amd64.deb sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
  • 下载 PaddlePaddle Docker 镜像sudo nvidia-docker pull hub.baidubce.com/paddlepaddle/deep_speech_fluid:latest-gpu
  • git clone 本项目源码git clone https://github.com/yeyupiaoling/DeepSpeech.git
  • 运行 PaddlePaddle Docker 镜像,这里设置与主机共同拥有IP和端口号。sudo nvidia-docker run -it --net=host -v $(pwd)/DeepSpeech:/DeepSpeech hub.baidubce.com/paddlepaddle/deep_speech_fluid:latest-gpu /bin/bash
  • 安装 PaddlePaddle 1.8.0,因为这个项目必须要在 PaddlePaddle 1.8.0 版本以上才可以运行。pip2 install paddlepaddle-gpu==1.8.0.post107 -i https://mirrors.aliyun.com/pypi/simple/

搭建本地环境

  • 并不建议使用本地进行训练和预测,但是如何开发者必须使用本地环境,可以执行下面的命令。因为每个电脑的环境不一样,不能保证能够正常使用。首先需要正确安装 PaddlePaddle 1.8.0 的GPU版本,并安装相关的CUDA和CUDNN。pip2 install paddlepaddle-gpu==1.8.0.post107 -i https://mirrors.aliyun.com/pypi/simple/
  • 切换到DeepSpeech/setup/目录下,执行setup.sh脚本,注意在执行之后需要输入root用户密码,等待安装即可cd DeepSpeech/setup/ sh setup.sh

数据准备

  1. data目录下是公开数据集的下载和制作训练数据列表和字典的,本项目提供了下载公开的中文普通话语音数据集,分别是Aishell,Free ST-Chinese-Mandarin-Corpus,THCHS-30 这三个数据集,总大小超过28G。下载这三个数据只需要执行一下代码即可,当然如何想快速训练,也可以只下载其中一个。cd data/ python aishell.py python free_st_chinese_mandarin_corpus.py python thchs_30.py
  • 如果开发者有自己的数据集,可以使用自己的数据集进行训练,当然也可以跟上面下载的数据集一起训练。自定义的语音数据需要符合一下格式:dataset/audio/wav/0175/H0175A0171.wav 我需要把空调温度调到二十度 dataset/audio/wav/0175/H0175A0377.wav 出彩中国人 dataset/audio/wav/0175/H0175A0470.wav 据克而瑞研究中心监测 dataset/audio/wav/0175/H0175A0180.wav 把温度加大到十八
    1. 语音文件需要放在DeepSpeech/dataset/audio/目录下,例如我们有个wav的文件夹,里面都是语音文件,我们就把这个文件存放在DeepSpeech/dataset/audio/
    2. 然后把数据列表文件存在DeepSpeech/dataset/annotation/目录下,程序会遍历这个文件下的所有数据列表文件。例如这个文件下存放一个my_audio.txt,它的内容格式如下。每一行数据包含该语音文件的相对路径和该语音文件对应的中文文本,要注意的是该中文文本只能包含纯中文,不能包含标点符号、阿拉伯数字以及英文字母。
  • 然后执行下面的数据集处理脚本,这个是把我们的数据集生成三个JSON格式的数据列表,分别是manifest.dev、manifest.test、manifest.train。然后计算均值和标准差用于归一化,脚本随机采样2000个的语音频谱特征的均值和标准差,并将结果保存在mean_std.npz中。建立词表。最后建立词表,把所有出现的字符都存放子在zh_vocab.txt文件中,一行一个字符。以上生成的文件都存放在DeepSpeech/dataset/目录下。# 生成数据列表 python tools/create_manifest.py # 计算均值和标准差 python tools/compute_mean_std.py # 构建字典 python tools/build_vocab.py

训练模型

  • 执行训练脚本,开始训练语音识别模型, 每训练一轮保存一次模型,模型保存在DeepSpeech/models/checkpoints目录下。CUDA_VISIBLE_DEVICES=0,1 python train.py

语言模型

下载语言模型并放在lm目录下,以下是下载的是70G的超大语言模型,如果不想使用这么大的,可以下载Mandarin LM Small ,这个模型会小很多。

代码语言:txt
复制
cd DeepSpeech/
mkdir lm
wget https://deepspeech.bj.bcebos.com/zh_lm/zhidao_giga.klm

评估和预测

  • 在训练结束之后,我们要使用这个脚本对模型进行超参数调整,提高语音识别性能。CUDA_VISIBLE_DEVICES=0,1 python tools/tune.py
  • 我们可以使用这个脚本对模型进行评估,通过字符错误率来评价模型的性能。CUDA_VISIBLE_DEVICES=0,1 python eval.py

项目部署

  • 启动语音识别服务,使用Socket通讯。需要注意的是host_ip参数是电脑本机的IP地址,其他使用默认就可以。CUDA_VISIBLE_DEVICES=0,1 python deploy/server.py
  • 测试服务,执行下面这个程序调用语音识别服务。在控制台中,按下空格键,按住并开始讲话。讲话完毕请释放该键以让控制台中显示语音的文本结果。要退出客户端,只需按ESC键。python deploy/client.py
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/11/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 语音识别
    • 环境搭建
      • 搭建本地环境
    • 数据准备
      • 训练模型
        • 语言模型
          • 评估和预测
            • 项目部署
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档