语音唤醒 Windows SDK 文档

1、简介

语音唤醒(Voice Wakeuper)通过辨别输入的音频中特定的词语(如“讯飞语点”),返回被命中(唤醒)结果,应用通过回调的结果,进行下一步的处理,如点亮屏幕,或与用户进行语音交互等。唤醒资源中含有一个或多个资源,只要命中其中一个,即可唤醒。需下载使用对应的语音唤醒SDK。

语音唤醒详细的接口介绍及说明请参考: MSC Windows API 文档, 在集成过程中如有疑问,可登录讯飞开放平台论坛,查找答案或与其他开发者交流。

注:支持Windows XP以上系统版本,开发环境建议使用VS2010版本,暂不兼容VS2017版本。

2、SDK集成指南

2.1 Demo运行步骤

1.在控制台下载对应sdk

2.进入sdk内samples目录,双击samples.sln文件(需事先安装Visual Studio)

2.2 项目集成步骤

2.2.1 sdk包说明

《SDK目录结构一览》

  • bin:
    • msc.dll(32位动态链接库)
    • msc_x64.dll(64位动态链接库)
    • 相关资源文件
  • doc:
    • 相关技术文档
  • include:
    • 调用SDK所需头文件
  • libs:
    • msc.lib(32位静态链接库)
    • msc_x64.lib(64位静态链接库)
  • samples:
    • awaken_sample(语音唤醒示例)

注意:

  • 为了减少SDK包在应用中占用的大小,官网在下载单个功能的SDK包时, 可能并不包含其他功能,如下载唤醒的SDK包时,可能不包含听写或合成等功能,因此在运行未包含功能的示例时,可能会报错。对此请下载对应功能的SDK,或下载组合的SDK包。

2.2.2 sdk导入

  • Step 1: 新建工程

1.打开Microsoft Visual Studio(本例使用的是VS2010),选择文件->新建->项目->Visual C++ ->Win32控制台应用程序,输入项目名称,然后点击确定键

img

2.应用程序类型选择“控制台应用程序”,附加选项选择“空项目”,然后点击完成。

img

  • Step 2:配置工程属性

1.将SDK中bin,include,libs文件夹复制到新建工程“Demo”文件夹下

img

2.导入头文件

右键点击新建工程,选择 “属性“,进入工程属性页面:点击C/C++->常规->附加包含目录,输入相对于工程文件Demo.vcxproj的相对路径,即相对于$(ProjectDir)的路径,另源代码文件也需相同设置。

img

3.导入msc.dll

a. 加载msc.lib文件:在main.c文件中输入如下图所示代码,其他详细代码请参考Samples中对应的语音示例 注意:加载路径输入相对于工程文件的相对路径

 #ifdef _WIN64
 #pragma comment(lib,"../libs/msc_x64.lib")
 #else
 #pragma comment(lib, "../libs/msc.lib")
 #endif

b. 将msc.dll所在目录设置为工作目录,即“$(ProjectDir)..\bin\”

img

4.将目标可执行文件复制到msc.dll所在目录

img

5.SDK启动后,bin/msc目录下会生成日志。(注意:msc文件夹下需有msc.cfg文件)

img

2.2.3 API调用流程

语音唤醒主要API调用流程如下图所示:

img

详细代码调用请参考 Samples中的 awaken_sample(语音唤醒示例)。 API详细描述请参考API文档

2.3 参数与说明

2.3.1 常用参数说明

以下为常用参数说明,更多参数请参考API文档

参数 名称 说明
ivw_threshold 唤醒词门限 id0:xx;id1:xx;….。
示例:0:1450;1:1450表示设置第一个唤醒词的门限值为1450,第二个唤醒的门限值是1450,门限值越低越容易唤醒成功。注意:建议唤醒引擎门限值设为1450,且取值范围为非负数,一般可在0-3000之间调节。

2.3.2 唤醒结果

唤醒结果字段说明:

参数 参数解释
sst 本次业务标识:wakeup表示语音唤醒;oneshot表示唤醒+识别;
id 当前唤醒词的id
score 当前唤醒得分,只有当分数大于等于设置的门限值时才会回调唤醒结果
bos 当前唤醒音频的前端点,即当前唤醒音频在写入的总音频中的开始时间位置,单位:ms
eos 当前唤醒音频的尾端点,即当前唤醒音频在写入的总音频中的结束时间位置,单位:ms
keyword 当前唤醒词,若是中文唤醒词会自动以拼音形式显示

语音唤醒结果示例:

{
"sst":"wakeup",
"id":0,
"score":1450,
"bos":1610,
"eos":2260,
"keyword":"ding1dong1ding1dong1"
}

3、常见问题

VS2017版本使用离线唤醒失败?

答:支持Windows XP以上系统版本,开发环境建议使用VS2010版本,暂不兼容VS2017。

语音唤醒sdk如何下载试用?

答:文档中心---快速指引有介绍步骤---根据步骤下载相应平台的语音唤醒sdk,语音唤醒SDK包有10个装机量,试用期为90天。

语音唤醒支持什么平台?

答:语音唤醒目前支持:Android/iOS/Windows/Linux应用平台。

语音唤醒支持什么语言?

答:目前支持中文和英文。唤醒词设置最多支持8个,每个为4-6个汉字或不超过2个英文单词。中英文不可同时配置。

语音唤醒的主要功能有什么?

答:设备(手机、玩具、家电等)在休眠或锁屏状态下也能检测到用户的声音(设定的语音指令,即唤醒词),让处于休眠状态下的设备直接进入到等待指令状态,开启语音交互第一步。

如何购买语音唤醒?

答:登录讯飞开放平台,点击进入语音唤醒页面,点击到语音唤醒页面,可查看到详细的价格表。点击对应套餐包的“立即购买”,可进行支付购买。