功能说明

BDSClientHeaders/ASR/Settings/BDSASRDefines.h 与 BDSASRParameters.h 头文件中包含了绝大多数SDK的可用配置参数及说明。

语音识别音频数据源配置

目前SDK支持三种音频数据源。说明如下:

音频数据源 优先级 说明
文件输入 16K采样率、单声道PCM格式音频文件
输入流 用以支持外接音源,如车载录音机
本地录音机 手机设备内置录音功能
  1. 默认使用本地录音机,如设置过文件或输入流相关参数,将其置空即可恢复为默认设置;
  2. 录音模块运行时,切换数据源不生效;
  3. 多模块共享录音模块,重复设置会产生覆盖;

语音识别策略

目前SDK支持两种识别策略。说明如下:

识别策略 说明
在线识别 识别请求发至语音服务器进行解析
并行模式 离在线识别同时进行,取第一个返回的识别结果

引擎验证方法

在线识别与唤醒都需要进行相关验证后方可使用:

引擎类型 验证方法
在线识别 开放平台使用API/SECRET KEY + APPID进行验证
离线识别 使用APPID进行验证
唤醒引擎 与离线识别验证方法一致

语音识别中的AudioSession

语音识别SDK默认会将AudioSession的Category设置为AVAudioSessionCategoryPlayAndRecord,并在必要的时候调用setActive接口对外部音频进行打断及恢复,如果开发者不希望SDK对AudioSession进行操作,可以通过参数配置接口,把BDS_ASR_DISABLE_AUDIO_OPERATION对应的value设置为YES,即可屏蔽SDK内部的操作。

需要注意的是,SDK仍会对Category进行设置,只是屏蔽了setActive接口的调用,开发者可根据需求自行配置。

标点输出

如若需要输出标点,请先根据语言设置支持标点的PRODUCT_ID,同时关闭BDS_ASR_DISABLE_PUNCTUATION

// -- 开启标点输出 -----
[self.asrEventManager setParameter:@(NO) forKey:BDS_ASR_DISABLE_PUNCTUATION];
// 普通话标点
[self.asrEventManager setParameter:@"1537" forKey:BDS_ASR_PRODUCT_ID];
// 英文标点
// [self.asrEventManager setParameter:@"1737" forKey:BDS_ASR_PRODUCT_ID];

PRODUCT_ID

在线参数, 请根据语言, 输入法或者搜索模型及是否需要在线语义,来选择PID。

  • 语言:目前支持中文普通话,四川话,粤语,和英语四个
  • 输入法模型:适用于较长的句子输入。默认有标点,不支持在线语义; 开启标点后,不支持本地语义。
  • 搜索模型:适用于较短的句子输入。无标点,支持在线语义和本地语义。
  • 在线语义:在线语义只支持普通话(本地语义也是只支持普通话)
PID 语言 模型 是否有标点 在线语义 备注
1536 普通话 搜索模型 无标点 不支持 默认PID
15362 普通话 搜索模型 加强标点(逗号、句号、问号、感叹号) 不支持
15363 普通话 搜索模型 加强标点(逗号、句号、问号、感叹号) 支持
1537 普通话 输入法模型 有标点(逗号) 不支持
15372 普通话 输入法模型 加强标点(逗号、句号、问号、感叹号) 不支持
15373 普通话 输入法模型 加强标点(逗号、句号、问号、感叹号) 支持
1737 英语 无标点 不支持
17372 英语 加强标点(逗号、句号、问号) 不支持
1637 粤语 有标点(逗号) 不支持
16372 粤语 加强标点(逗号、句号、问号、感叹号) 不支持
1837 四川话 有标点(逗号) 不支持
1936 普通话 远场模型 有标点(逗号) 不支持
19362 普通话 远场模型 加强标点(逗号、句号、问号、感叹号) 不支持
19363 普通话 远场模型 加强标点(逗号、句号、问号、感叹号) 支持

以上描述的“长句模型”与“长语音识别”是两个概念

PRODUCT_ID通过参数BDS_ASR_PRODUCT_ID来配置,如

[self.asrEventManager setParameter:@"1537" forKey:BDS_ASR_PRODUCT_ID];

注意:BDS_ASR_PRODUCT_ID参数会覆盖识别语言的设置