智能语音助手调研
需求:
像百度等是否有语音智能助手,利用语音来检索知识
可以私有化部署
方案一:百度智能对话AI产品(3个)
方案二:阿里AI语音助手
方案三:科大讯飞语音助手
部署方式:
- 云端训练,部署后调用云端API
- 线下部署,需注册为开发者,与平台沟通购买相关服务
- 购买整套服务,平台提供售后
不收费版本:
集成方案
- 语音转文字(语音识别):语音识别-百度AI开放平台 得调API
- 文字拆分,生成指令:PaddleHub 分词模型LAC
中文NLP的第一步:分词,基于 PaddleHub 实现,绝对小白友好(学习心得)
- 指令调接口查询
- 返回结果展示
- 语音合成:
离线语音合成-百度AI开放平台
百度语音合成快速集成指南-实现步骤
Parakeet:手把手教你训练语音合成模型(脚本任务、Notebook)
离线文字转语音-简书
简单可行方案及开源代码👍👍👍
一、Pocketsphinx
- 通过声学信号转化–分析转化为音素–电脑理解的最小声音信号单元.
- 应用场景:要求速度快,内存占用少,准确率不高,基本上属于对照最相似的声音信号输出固定性文字。
- 问题限制:通过增加语素对应的词典,可以实现多语种的切换,和词汇的扩充。语料词典耗费比较高。
import os
from pocketsphinx import AudioFile, get_model_path, get_data_path
model_path = get_model_path()
print(model_path)
data_path = get_data_path()
'''
支持的文件格式:wav
音频文件的解码要求: 16KHz, 单声道
'''
config = {
'verbose': False,
'audio_file': './data/output/1_1.wav',
'buffer_size': 2048,
'no_search': False,
'full_utt': False,
'hmm': os.path.join(model_path, 'en-us'), # 计算模型
'lm': os.path.join(model_path, 'en-us.lm.bin'),#语言模型
'dict': os.path.join(model_path, 'cmudict-en-us.dict')# 词典模型
}
audio = AudioFile(**config)
for phrase in audio:
print(phrase)
参考资料:【CSDN博客】pocketsphinx库(离线语音识别)
二、基于PPASR的语音识别
- PPASR使用卷积神经网络,使用了CTC Loss作为损失函数。
- 应用场景:可以做到小范围的前后语义的理解,准确率一般,模型文件大小100M以上。对词语短句的理解比较好。
- 问题限制:(1)训练过程耗费时间。(2)需要更好的计算资源。(3)需要数据集训练才能更好的训练出效果。
项目地址:【AIStudio】PPASR语音识别(入门级)
项目Github地址:https://github.com/yeyupiaoling/PPASR
三、基于ASRT的语音识别
- ASRT可以说是在PPASR上的改进,增加了递归神经网络,使模型对整句话的理解有所提升。
- 应用场景:可以前后语义的理解,准确率较好,对词语短句的理解比较好。
- 问题限制:(1)训练过程耗费时间。(2)更需要好的计算资源。(3)需要数据集训练才能更好的训练出效果。
本项目使用Keras、TensorFlow基于深度卷积神经网络和长短时记忆神经网络、注意力机制以及CTC实现。
项目Github地址:https://github.com/nl8590687/ASRT_SpeechRecognition.git