语音识别应用案例 | 语音助手
AI语音识别技术应用于语音助手,辅助学生学习 #生活知识# #科技生活# #科技改变生活# #科技教育#
其中,声学模型GRU-CTC,只需导入路径即可:
frommodel_speech.gru_ctc importAm, am_hparams
实现此案例需要按照如下步骤进行.
01
步骤一:声学模型训练
编辑train.py文件完成声学模型的训练,语言模型使用已经训练好的模型文件。
【案例5- 4】train.py
importkeras
importos
importtensorflow astf
fromutils importget_data, data_hparams
fromkeras.callbacks importModelCheckpoint
# 0.准备训练所需数据------------------------------
data_args = data_hparams
data_args.data_type = 'train'
data_args.data_path = '../dataset/'
data_args.thchs30 = True
data_args.aishell = True
data_args.prime = True
data_args.stcmd = True
data_args.batch_size = 4
data_args.data_length = 10
# data_args.data_length = None
data_args.shuffle = True
train_data = get_data(data_args)
# 0.准备验证所需数据------------------------------
data_args = data_hparams
data_args.data_type = 'dev'
data_args.data_path = '../dataset/'
data_args.thchs30 = True
data_args.aishell = True
data_args.prime = False
data_args.stcmd = False
data_args.batch_size = 4
# data_args.data_length = None
data_args.data_length = 10
data_args.shuffle = True
dev_data = get_data(data_args)
# 1.声学模型训练-----------------------------------
frommodel_speech.gru_ctc importAm, am_hparams
am_args = am_hparams
am_args.vocab_size = len(train_data.am_vocab)
am_args.gpu_nums = 1
am_args.lr = 0.0008
am_args.is_training = True
am = Am(am_args)
ifos.path.exists( 'logs_am/model.h5'):
print( 'load acoustic model...')
am.ctc_model.load_weights( 'logs_am/model.h5')
epochs = 10
batch_num = len(train_data.wav_lst) // train_data.batch_size
# checkpoint
ckpt = "model_{epoch:02d}-{val_acc:.2f}.hdf5"
checkpoint = ModelCheckpoint(os.path.join( './checkpoint', ckpt), monitor= 'val_loss', save_weights_only= False, verbose= 1, save_best_only= True)
batch = train_data.get_am_batch
dev_batch = dev_data.get_am_batch
am.ctc_model.fit_generator(batch, steps_per_epoch=batch_num, epochs= 10, callbacks=[checkpoint], workers= 1, use_multiprocessing= False, validation_data=dev_batch, validation_steps= 200)
am.ctc_model.save_weights( 'logs_am/model.h5')
02
步骤二:模型测试
在test.py文件中整合声学模型和语言模型。
【案例5- 5】test.py
本案例中test.py文件完整代码如下所示:
import os
import difflib
import tensorflow astf
import numpy asnp
from utils import decode_ctc, GetEditDistance
# 0.准备解码所需字典,参数需和训练一致,也可以将字典保存到本地,直接进行读取
from utils import get_data, data_hparams
data_args = data_hparams
train_data = get_data(data_args)
# 1.声学模型-----------------------------------
from model_speech.gru_ctc import Am, am_hparams
am_args = am_hparams
am_args.vocab_size = len(train_data.am_vocab)
am= Am(am_args)
print( 'loading acoustic model...')
am.ctc_model.load_weights( 'logs_am/model.h5')
# 2.语言模型-------------------------------------------
from model_language.transformer import Lm, lm_hparams
lm_args = lm_hparams
lm_args.input_vocab_size = len(train_data.pny_vocab)
lm_args.label_vocab_size = len(train_data.han_vocab)
lm_args.dropout_rate = 0.
print( 'loading language model...')
lm= Lm(lm_args)
sess = tf.Session(graph= lm.graph)
with lm.graph.as_default:
saver = tf.train.Saver
with sess.as_default:
latest = tf.train.latest_checkpoint( 'logs_lm')
saver.restore(sess, latest)
# 3. 准备测试所需数据, 不必和训练数据一致,通过设置data_args.data_type测试,
# 此处应设为 'test',我用了 'train'因为演示模型较小,如果使用 'test'看不出效果,
# 且会出现未出现的词。
data_args.data_type = 'train'
data_args.shuffle = False
data_args.batch_size = 1
test_data = get_data(data_args)
# 4. 进行测试-------------------------------------------
am_batch = test_data.get_am_batch
word_num = 0
word_error_num = 0
fori in range( 10):
print( '\n the ', i, 'th example.')
# 载入训练好的模型,并进行识别
inputs, _ = next(am_batch)
x= inputs[ 'the_inputs']
y= test_data.pny_lst[i]
result = am.model.predict( x, steps= 1)
# 将数字结果转化为文本结果
_, text = decode_ctc(result, train_data.am_vocab)
text = ' '. join(text)
print( '文本结果:', text)
print( '原文结果:', ' '. join( y))
with sess.as_default:
text = text.strip( '\n'). split( ' ')
x= np.array([train_data.pny_vocab. index(pny) forpny in text])
x= x.reshape( 1, - 1)
preds = sess.run( lm.preds, { lm. x: x})
label = test_data.han_lst[i]
got = ''. join(train_data.han_vocab[idx] foridx in preds[ 0])
print( '原文汉字:', label)
print( '识别结果:', got)
word_error_num += min( len(label), GetEditDistance(label, got))
word_num += len(label)
print( '词错误率:', word_error_num / word_num)
sess. close
03
参考书籍
《人工智能概论》
作者:赵克玲 瞿新吉 任燕
定价:69元
扫码优惠购书
内容简介
本书特色
采用思维导图对课程和章节重要知识点进行梳理,便于理解和记忆。
每章配有目标、正文、总结和习题,使教学内容和过程形成闭环。
理论联系实践,基于应用,并提供微课视频,帮助初学者能够快速学习和掌握。
教学资源
配套资源丰富,包括微课视频、教学课件、程序代码、习题答案、教学大纲、考试大纲等资源。
04
精彩推荐
机器学习案例 |预测工资——线性回归
机器学习案例 |猫狗分类
人工智能实战 | 影评词云数据案例分析
鸿蒙开发实例|构建轻量级智能穿戴设备用户界面
CCF CSP-J/S第一轮认证必考知识点:回溯算法
CCF CSP-J/S第一轮认证必考知识点:二值图像的最大连通块
CCF CSP-J/S第一轮认证必考知识点:哥德巴赫猜想
CCF CSP-J/S第一轮认证考纲详解
Python 韩信点兵思政案例(含优惠码)
Python ︱爬取天气预报信息(附视频)
《机器学习》实验指导书(附实验参考+代码)
Python爬虫综合实战 │ 创建云起书院爬虫(附代码)
Python爬虫实战 │ Email提醒(附代码)
Python深度学习 │一文掌握卷积神经网络
责任编辑:
网址:语音识别应用案例 | 语音助手 https://www.yuejiaxmz.com/news/view/158412
相关内容
实战案例:AI在语音识别与语音合成领域的应用语音识别合成助手下载
华为手机语音助手语音识别不了怎么办
语音助手
深入了解PyTorch中的语音识别和语音生成
智能语音助手
Yoga最强音 语音助手在生活中的应用
Android中谷歌语音识别应用探究
UC答题助手来了,智能语音识别助力答题赢百万!
智能语音助手下载