机器人开发

1.百度语音

简介

百度语音识别通过 REST API 的方式给开发者提供一个通用的 HTTP 接口。上传需要完整的录音文件,录音文件时长不超过60s。REST API,均封装了 Java、Python、PHP、C#、NodeJs、C++ 共6种开发语言的SDK。功能等同于REST API。SDK中识别使用JSON方式提交本地文件。

离线语音识别SDK目前只有iOS和Android。对于Android SDK,离线语音识别包括离线命令词和唤醒词。

  • 离线命令词: 断网时激活,只能识别预定义的短语。联网时,强制使用在线识别。固定短语的语法需要在官网预定义并下载为baidu_speech_grammar.bsg文件
  • 唤醒词:本地功能,不需要网络。唤醒词即识别“关键词”,当SDK的识别引擎“听到”录音中的关键词后,立即告知用户。与android系统的锁屏唤醒完全无关。关键词和离线命令词一样,需要预定义并下载为WakeUp.bin文件

iOS支持离在线并行识别,但需要注意的是在线识别效果远优于离线识别,不推荐使用离线识别。

首次使用离线,SDK将会后台下载离线授权文件,成功后,授权文件有效期(三年)内无需联网。有效期即将结束后SDK将自动多次尝试联网更新证书)。

费用

语音识别、合成服务免费,接口调用量无限。QPS识别默认为10,合成为100

语种

支持普通话、粤语、英语、四川话

自定义词库

自定义词库适合短句,保证词库中一模一样的短句可以被识别出,词库中的分词优先级较高。 自定义词库仅对dev_pid = 1536,即普通话(支持简单的英文识别)生效,并且原始音频的采用率为16K。

最好在1万行以内。

副作用:如果用户的测试集中包含大量非自定义词表的query,整体上准确率下降。

注意事项

目前 API 仅支持整段语音识别的模式,即需要上传完整语音文件进行识别。文件大小不超过10M,时长不超过60s。 语音数据上传POST方式有2种:

1.JSON格式POST上传本地文件

语音数据和其他参数通过标准 JSON 格式串行化 POST 上传

2.raw格式POST上传本地文件

即raw格式POST上传本地文件语音数据直接放在 HTTP BODY 中,控制参数以及相关统计信息通过 header和url里参数传递。语音格式,pcm 或者 wav 或者 amr。不区分大小写,推荐使用pcm文件。采样率 16000, 固定值

2. Kaldi

Kaldi是一个开源的语音识别工具箱,基于C++编写, 可以在Windows和unix平台上编译。

特色

与文本无关的LVCSR系统;
基于FST的训练和解码;
最大似然训练;
各种各样的线性和映射变换;
有VTLN,SAT的脚本

声学模型

支持标准的机器学习训练模型;
线性变换如:LDA,HLDA,MLLR;
说话人自适应:fMLLR,MLLR;
支持GMM,SGMMs,DNN

用到的库

OpenFST: Weighted Finite State Transducer Library(加权有限状态转换器)
ATLAS、CLAPACK:标准的线性代数库
sph2pipe:由sph文件转换成其他音频文件
irstlm:语言模型的工具箱
sctk:score benchmark(评价ASR基准)

中文语音语料库

  1. AI SHELL公司开源178小时中文语音语料及基本训练脚本,见kaldi-master/egs/aishell
  2. 清华大学30小时的数据集,thchs30
  3. CVTE公司开源其训练好的TDNN模型,http://kaldi-asr.org/models.html

实际效果

使用CVTE训练好的SR模型做中文在线识别,困惑度(PPL)和字错误率(CER)
CVTE201701(1000 utts): ppl 340; cer: 4.55%
CVTE201703(10000 utts): ppl 313; cer: 4.5%
CVTE201705(5000 utts): ppl 200; cer: 15.7%
CVTE201705_02(7000 utts): ppl 1000+; cer: 5.58%
THCHS30(2496 utts): ppl 2000+; cer: 8.25%

3. 现有解决方案

  • 科讯嘉联

  • 深世信息

  • 腾讯催收机器人CR

  • 灵声音机器人

你可能感兴趣的:(机器人开发)