AI实战:用 TensorFlow 识别数字 0-9

摘要

本项目的目标是使用深度学习来检测数字 0-9 的语音。

我们将利用深度学习技术,把语音文件转译为文本数据,例如把英语 three 的发音转译为文本 “three”。

我们将使用 TensorFlow/Keras 来创建模型、训练模型,再使用测试数据评估它的性能。

运行环境

因为 AI 需要在 GPU 上运算,而一般的 PC 是没有 GPU 的,所以我们要借用云端的算力。

我选择的云端算力平台是 OpenBayes,你使用下面的链接进行注册,将可以获得免费 4 小时 RTX-4090 显卡的使用时长。

注册链接如下:
https://openbayes.com/console/signup?r=comehope_JrJj

点击它,会出现下面的登录界面,填写用户名、邮箱、密码、手机号和短信验证码,就可以完成注册,如下图所示。

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?在这里插入图片描述

克隆教程

注册成功之后,进入到个人控制台,在左侧菜单中选择“公共资源/公共教程”,搜索“0-9”,找到“语音识别入门教程:用 TensorFlow 识别数字 0-9”这篇教程,如下图所示。

在这里插入图片描述

打开这篇教程,点击右上角的“克隆”按钮,如下图所示。

在这里插入图片描述

在接下来“从模板创建:基本信息”的界面中点击“下一步:选择算力”按钮,如下图所示。

在这里插入图片描述

所谓算力,就是显卡类型,请选择“RTX 4090”,这里会显示您获赠的时长。再选择镜像类型中,选择“TensorFlow”,然后,显示右下角的“下一步:审核”按钮,如下图所示。

在这里插入图片描述

接下来列出了刚才选择过的算力和镜像,点击右下角的“继续执行”按钮,如下图所示。

在这里插入图片描述

接下来,系统会自动分配资源,稍待片刻,等到页面中显示“打开工作空间”按钮,点击它,就可以进入运行中的教程了,如下图所示。

在这里插入图片描述

工作空间的界面如下图所示。

在这里插入图片描述

接下来,运行“教程.jpynb”文件即可。以下内容与 “教程.jpynb” 的内容完全相同,建议您在 Jupyter 中运行,可以实时看到运行结果。

教程正文

先安装库文件,所有依赖都保存在 requirements.txt 中,其中主要是 librosa 库,是一个提取语音特征的库。

!pip install -r /openbayes/home/requirements.txt -q

数据集包含 1700 个语音文件,录制了多个人的英语数字发音,每个录音大约 1 秒到 2 秒时长。

数据集已经下载到 data 文件夹中。

接下来我们开始正式编码。

首先,定义数据集的文件夹路径,每个数字的语音都保存在以它的英语单词命名的文件夹中。

file_paths = {
   
   
    '0': 'zero',
    '1': 'one',
    '2': 'two',
    '3': 'three',
    '4': 'four',
    '5': 'five',
    '6': 'six',
    '7': 'seven',
    '8': 'eight',
    '9': 'nine'
}

初始化 2 个列表 audio_data 和 labels,用于保存音频数据和音频对应的标签。

audio_data = []
labels = []

使用 librosa 库提取语音特征,即所有音频文件的 MFCC 特征,并且使帧长固定为 40。MFCC(梅尔频率倒谱系数)适合描绘人类的语音特征。

使用 librosa 库提取语音特征,即所有音频文件的 MFCC 特征,并且使帧长固定为 40。MFCC(梅尔频率倒谱系数)适合描绘人类的语音特征。

import os
import numpy as np

n_frames = 40
for label, file_path in file_paths.items():
    print("processing: ", label, file_path)
    for file_name in os.listdir('data/' + file_path):
        file_path_full = os.path.join('data/' + file_path,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值