AIUI接入概述


AIUI包含声学接入交互接入。需要打断交互或远场交互的智能设备才需要声学接入。

开发-接入 - 图1

交互接入


接入方式

AIUI支持硬件、SDK、WebSocket API接入。

开发-接入 - 图2

SDK

SDK支持 Android、iOS、Linux、Windows 平台。Android 平台提供 Java封装,其它平台的接口函数均为 C/C++ 封装。 AIUI平台的SDK默认配置1mic算法,如需多麦算法请联系商务。

WebSocket

AIUI WebSocket API 接口,适用于各种编程语言,以及各种系统,甚至单片机,支持多路并发。同时支持流式交互,低延迟,双向通信。

硬件

AIUI 评估板(量产板)是 AIUI 软硬一体解决方案,讯飞魔飞智能麦克风是成品级解决方案。相比 AIUI SDK 具有远场拾音、回声消除,全双工交互的特点。
功能依次递增 方式
音频文件、文本语义 WebSocket API
单路音频流识别、自动断句 SDK
远场拾音、自动降噪 AIUI 评估板(量产板)
成品级解决方案 讯飞魔飞智能麦克风

WebSocketAPI接入


示例代码

WebSocket DEMO

接口说明

AIUI 服务基于 WebSocket 协议,包括:建立连接通信断开连接 注意:
本接口是短连接,每次交互要新建连接,会话完成后,讯飞断开连接。单次会话过程中支持流式交互(客户端不断上传音频数据,讯飞不断下发结果) 交互时序图:
  1. 设备有vad功能,交互时序:
    开发-接入 - 图3
  2. 设备无vad功能,依赖云端vad,交互时序:
    开发-接入 - 图4

精简协议接入


概览

精简协议简化了标准语义协议。适用于低算力设备。 标准协议缺陷:
1.不同技能的result字段不同,设备端解析不便
2.有n个技能就需要解析n个service
3.RTOS设备的内存不足以解析完整协议

精简协议内容

精简协议规整了媒资类和播报类技能,其中媒资类技能指的是需要从data.result字段中拿到播放的url进行播放,而播报类技能则指的是只需要播报answer内容的技能。 一、媒资类技能的协议修改点:
  1. 新增service_pkg字段,表示技能的精简协议类型,将官方媒资类技能统一打包,通过 service_pkg=”media”标识;客户端只需要判断该字段即可对媒资类技能统一处理;
  2. 针对媒资类技能,data.result字段只保留4个:
字段 类型 说明
itemid String 资源ID
uni_url String 资源地址
duration String 资源播放持续时间
name String 资源名称
  1. 针对媒资类技能,data.result数组长度缩减到5条。
二、播报类技能的协议修改点:
  1. 新增service_pkg字段,表示技能的精简协议类型,将播报类技能统一打包,通过 service_pkg=”broadcast”标识;客户端只需要判断该字段即可对播报类技能统一处理;
  2. 播报类技能,data.result数组中不再返回数据。
三、建议客户端对于精简协议的处理流程为:

开发-接入 - 图5

精简协议技能列表

一、媒资类技能列表:
service 中文名 类型
AIUI.audioBook 有声书 媒资类
AIUI.Bible 圣经 媒资类
AIUI.chCultivation 儿童兴趣培养 媒资类
AIUI.chDevelopment 儿童学堂 媒资类
AIUI.chLiterature 国学 媒资类
AIUI.chSong 儿歌 媒资类
AIUI.meditationTime 冥想时刻 媒资类
AIUI.ocularGym 眼保健操 媒资类
AIUI.sleepWell 好好睡觉 媒资类
AIUI.smarter 越听越聪明 媒资类
AIUI.whiteNoise 白噪音 媒资类
animalCries 动物叫声 媒资类
crossTalk 相声小品 媒资类
drama 戏曲 媒资类
englishEveryday 英语每日一句 媒资类
health 健康讲座 媒资类
history 历史 媒资类
KLLI3.studyPinYin 我想学拼音 媒资类
LEIQIAO.funnyPassage 搞笑段子 媒资类
LEIQIAO.openClass 公开课 媒资类
LEIQIAO.speech 名人演讲 媒资类
musicX 音乐 媒资类
musicX_dialect 音乐方言版 媒资类
news 新闻 媒资类
novel 有声小说 媒资类
radio 广播电台 媒资类
story 故事 媒资类
storyTelling 评书 媒资类
二、播报类技能列表:
service 中文名 类型
KLLI3.FamilyNames 百家姓 播报类
baike 百科 播报类
AIUI.2bd672cefd 猜数字 播报类
lottery 彩票 播报类
cookbook 菜谱 播报类
AIUI.e09af9377o 成语接龙 播报类
wordsDictionary 词典 播报类
AIUI.unitConversion 单位换算 播报类
translation 翻译 播报类
college 高校查询 播报类
AIUI.collegeScore 高校分数线 播报类
KLLI3.powerScaler 功率换算 播报类
stock 股票 播报类
LEIQIAO.cityOfPro 国内城市查询 播报类
AIUI.forex 汇率 播报类
AIUI.f65cf38453 会说话的小鹦鹉 播报类
AIUI.calc 计算器 播报类
LEIQIAO.relationShip 家族关系神器 播报类
holiday 假期安排 播报类
AIUI.cd756aff0p 剪刀石头布 播报类
petrolPrice 今日油价 播报类
KLLI3.numberScaler 进制转换 播报类
AIUI.famousQuotes 经典名句 播报类
LEIQIAO.timesTable 九九乘法表 播报类
AIUI.85beebdd4t 口算挑战 播报类
garbageClassify 垃圾分类 播报类
LEIQIAO.historyToday 历史上的今天 播报类
AIUI.b1ed7474c9 谜语 播报类
AIUI.20aafd8b1r 脑筋急转弯 播报类
AIUI.ac140b7894 抛硬币 播报类
carNumber 汽车尾号限行 播报类
chineseZodiac 生肖运势 播报类
ZUOMX.queryCapital 省会查询 播报类
poetry 诗词 播报类
AIUI.179c5b26by 诗词挑战 播报类
datetimePro 时间日期查询 播报类
AIUI.WorldCup 世界杯 播报类
KLLI3.captialInfo 首都查询 播报类
LEIQIAO.BMI 体重指数查询 播报类
weather 天气 播报类
weather_dialect 天气方言版 播报类
AIUI.114c02b04p 跳数字 播报类
calendar 万年历 播报类
joke 笑话 播报类
AIUI.virusSearch 新冠疫情查询 播报类
constellation 星座 播报类
dream 周公解梦 播报类
EGO.healthKnowledge 健康知识 播报类
EGO.foodsCalorie 食物热量 播报类

admin 2024年4月29日 18:38 转发文档 收藏文档

离线命令词


概览

常用语音指令可以在本地识别,优势是响应快,不依赖网络。但是效果比在线差。 在线处理逻辑:
开发-接入 - 图6 离在线处理逻辑:
开发-接入 - 图7 ## 使用步骤 ### 获取离线功能SDK 联系技术支持说明需求并获取离线功能SDK包。

接入使用

添加配置

aiui.cfg中增加离线命令词相关配置:
  1. "speech":{
  2. "intent_engine_type":"mixed"
  3. },
  4. "esr":{
  5. "engine_type": "wfst_fsa",
  6. "pgs_enable": "1",
  7. "res_type":"assets",
  8. "res_path":"esr/common.jet",
  9. "preloads": [
  10. {
  11. "id": 0,
  12. "res_type": "assets",
  13. "res_path": "esr/contact.jet"
  14. }
  15. ]
  16. },
Copy
配置文件说明
intent_engine_mode控制音频到语义结果的解析方式,取值有:
  • cloud 纯云端解析,全部使用云端语义和听写功能,只返回在线结果

开发-接入 - 图8

  • local 纯离线命令词解析,只使用本地的离线命令词功能,只返回离线结果

开发-接入 - 图9

  • mixed 云端本地同时解析,返回最快的有效结果

开发-接入 - 图10

  • pipe 本地优先解析,如果有效即返回如果无效请求在线语义返回结果

开发-接入 - 图11

esr[‘res_path’]配置离线命令词模型通用资源。 esr[‘engine_type’]控制离线结果的输出类型,取值有:
  • wfst 离线听写模式
  • wfst_fsa 离线听写+离线命令词匹配模式
  • fsa 离线命令词匹配模式
esr[‘pgs_enable’]控制离线听写模式开启时是否有流式听写结果返回,取值有:
  • 1 开启
  • 0 关闭
esr[‘preloads’]配置初始化时默认编译加载的离线语法资源,可以配置多条预加载的资源。在每一条配置中需要声明编译加载语法的ID和语法文件路径。语法ID的意义可以参考语法动态编译更新时语法ID的含义。 如上配置之后,SDK在识别时就会按照配置的离线语法进行离线命令词识别,并通过EVENT_RESULT返回离线结果,结果数据示例请参见离线结果一节的说明。

编写语法文件

离线命令语法是使用 FSA 描述的语法。示例离线语法如下:
  1. #FSA 1.0;
  2. 0 1 <action>
  3. 1 2 <contact>
  4. 2 3 -
  5. 2 3 <phoneType>
  6. ;
  7. <action>:拨打|呼叫|打电话给;
  8. <contact>:张三|李四;
  9. <phoneType>:移动号码|家庭号码|单位号码;
格式说明:
  • 以#开头的行表示注释行;
  • 以<开头表示slot槽定义,冒号后面是slot的值定义。slot的即可以在语法文件中定义,也可以通过下面章节介绍的方式进行更新;
  • 以数字开头行表示句式网络定义,上面示例语法网络定义可视化表示如下:

开发-接入 - 图12

只要识别的内容能命中定义的网络,SDK就会返回离线命令词结果。比如说法打电话给张三会命中0 -> 1(action)和1 -> 2(contact)句式网络定义,那就返回如下离线命令词结果:

翻译模式


概览

翻译模式:先进行语音识别,再把识别文本翻译
翻译技能:用特定句式(翻译一下,翻译成等)才会翻译,否则命中其他技能
  1. 用户:今天天气?
  2. 翻译模式:How is the weather today?
  3. 天气技能:天气晴
  4. 用户:苹果翻译成英语
  5. 翻译模式:Translate apples into English
  6. 翻译技能:apple

使用方法

1.AIUI平台应用配置页面添加情景模式,选择语音翻译,如下图:

开发-接入 - 图13

2.固定设置翻译参数
(1)修改aiui.cfg的scene字段,为第一步中设置的情景模式名称
(2)添加attachparams字段,示例:

流式识别


概览

流式识别:边说边返回识别结果
开发-接入 - 图14

开启方法

开发-接入 - 图15

参数说明

给13856901234充100元话费识别回调EVENT_RESULT事件,判断sub=iat:
  1. {"sn":1,"ls":false,"bg":0,"ed":0,"pgs":"apd","ws":[{"bg":0,"cw":[{"sc":0.00,"w":"给"}]}]}
  2. {"sn":2,"ls":false,"bg":0,"ed":0,"pgs":"rpl","rg":[1,1],"ws":[{"bg":0,"cw":[{"sc":0.00,"w":"给"}]},{"bg":0,"cw":[{"sc":0.00,"w":"1385"}]}]}
  3. {"sn":3,"ls":false,"bg":0,"ed":0,"pgs":"rpl","rg":[1,2],"ws":[{"bg":0,"cw":[{"sc":0.00,"w":"给"}]},{"bg":0,"cw":[{"sc":0.00,"w":"13856"}]}]}
  4. {"sn":4,"ls":false,"bg":0,"ed":0,"pgs":"rpl","rg":[1,3],"ws":[{"bg":0,"cw":[{"sc":0.00,"w":"给"}]},{"bg":0,"cw":[{"sc":0.00,"w":"138569"}]}]}
  5. ......
  6. {"sn":21,"ls":false,"bg":0,"ed":0,"pgs":"rpl","rg":[1,20],"ws":[{"bg":0,"cw":[{"sc":0.00,"w":"给"}]},{"bg":0,"cw":[{"sc":0.00,"w":"13856901234"}]},{"bg":0,"cw":[{"sc":0.00,"w":"充"}]},{"bg":0,"cw":[{"sc":0.00,"w":"100"}]},{"bg":0,"cw":[{"sc":0.00,"w":"元"}]},{"bg":0,"cw":[{"sc":0.00,"w":"话费"}]}]}
  7. {"sn":22,"ls":true,"bg":0,"ed":0,"pgs":"apd","ws":[{"bg":0,"cw":[{"sc":0.00,"w":"。"}]}]}
Copy
  • sn:当前的结果id
  • ls:是否为最后一条结果
  • pgs:结果处理字段,apd(追加结果),rpl(替换结果)
  • rg:替换范围

语义VAD


功能

语音vad:等待用户说话时间是一个固定时间(参数vad_eos可设置),稍微停顿就结束对话了; 语义vad:用语义完整概率判断是否结束对话。动态调整VAD等待时间(最大1.8s)。如果客户说话快,说完迅速响应结果。如果客户说话慢,就会等1.8s,超时也认为说话结束

开发-接入 - 图16

开启方法

1. AIUI平台,开启语义VAD

开发-接入 - 图17

2. 点击保存和发布。(两分钟生效)。 3. SDK配置为continue模式 4. sdk配置文件aiui.cfg 中的 vad 配置段添加一下内容:
  1. //这是本地的 VAD 后端点时长, 语义vad只会等 1.8s,所以本地可以设置为 2s
  2. "vad_eos":"2000",
  3. //开启云端 VAD 的配置
  4. "cloud_vad_info":"end"
5. 注意:语义vad目前只支持远场识别

发音人列表


发音人列表

除了免费发音人,其他需要付费
发音人名称 vcn 取值 语言 音色
聆小樱(免费) x4_lingxiaoying_em_v2 普通话 成年女声
聆小璇(免费) x4_lingxiaoxuan_chat 普通话 成年女声
讯飞小娟(免费) x2_xiaojuan 普通话 成年女声