# 4.1.2、语音解析API文档
</br>
## 4.1.2.1 ParserTextBySystemRecordModule
* 概要
从系统中录音,检测有效的声音输入然后解析成文字。
* 构造器
| **函数原型** | ParserTextBySystemRecordModule( boost::shared_ptr\<FindVailVoiceParam\> findVailVoiceParam, bool isEnglist, std::string tipFile, int playTipMilli) |
|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
| **参数** | **说明** |
| findVailVoiceParam | 从录音中判断检测到有效音频录入条件 |
| isEnglist | 是否识别为英文。否则为中文 |
| tipFile | 识别慢,播放友好的提示声的文件路径 |
| playTipMilli | 找到有效音频后超过多少毫秒还没识别成文字,开始播放识别的中的提示声。 |
###### b.
| **函数原型** | ParserTextBySystemRecordModule() |
|--------------------|------------------------------------------------------------------------------------------|
| **默认参数** | **说明** |
| findVailVoiceParam | (300, 250, 600, 0, 0.02, 6 \* 1000, 1),请查看 4.1.2.3节 FindVailVoiceParam |
| isEnglist | false |
| tipFile | "./resource/tipSound/ParserSound.wav" |
| playTipMilli | 800 |
* listener开始监听和识别文字
| **函数原型** | ResultEntry listener() |
|--------------------------------------|----------------------------------------------------------------------------------------|
| **参数** | **说明** |
| **返回** | |
| ResultEntry | 识别到的结果,请参考 4.1.2.2节 |
| **备注** | 需要系统音频和语音处理先初始化完毕,请参考4.1.2.4节ConfigInitFactory的api |
* stop终止识别
| **函数原型** | void stop() |
|--------------|-------------|
</br>
## 4.1.2.2、 ResultEntry 处理结果
* getType处理结果状态
| **函数原型** | enum ResultType getType() |
|-----------------------------------------------|---------------------------|
| **返回** | |
| ResultType | 处理结果状态码 |
* getStr语义理解的回答
| **函数原型** | std::string getText() |
|--------------|-------------------------------------------------------------------|
| **返回** | |
| std::string | 返回的文字,只有getType ()的状态是resultTypeSucess,该值才会存在。 |
* ResultType处理结果状态码的枚举
| **枚举常量** | **简介** |
|-------------------------|----------|
| resultTypeSucess | 成功 |
| resultTypeInternetError | 网络错误 |
| resultTypeOtherError | 其他错误 |
</br>
## 4.1.2.3、 FindVailVoiceParam
* 概要
识别为有效音频的参数
* 构造器
| **函数原型** | FindVailVoiceParam( int extractCachePrevHeadMillisecondsData, int discoverVadVailVoiceContinueMilliseconds, int unDiscoverVadVailVoiceContinueMilliseconds, int kipHeadFindSoundMillseconds, double bufferSeconds, int maxOnceVailVoiceMillceconds, int vailDb) |
|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **参数** | **说明** |
| extractCachePrevHeadMillisecondsData | 提取缓存中前面多少毫秒的数据送往下一个处理流程 |
| discoverVadVailVoiceContinueMilliseconds | 判断识别为有效音频的连续毫秒数 |
| unDiscoverVadVailVoiceContinueMilliseconds | 判断有效音频后连续多少毫秒无效音频输入作为有效音频结束 |
| bufferSeconds | 每一次格式化的缓存大小的秒数,建议为20ms |
| maxOnceVailVoiceMillceconds | 一个最大的有效音频总长度,如果噪声一直输入,则到最大有效音频就断掉,避免一直持续输入出现假死的情况 |
| vailDb | 有效的阀值判断
</br>
## 4.1.2.4、 ConfigInitFactory
* 概要
各个组件初始化实现的工厂
* getAudioInit播放和录制的初始化实现
| **函数原型** | static boost::shared_ptr\<ConfigInitInterface\> getAudioInit() |
|---------------------|----------------------------------------------------------------|
| **参数** | **说明** |
| **返回** | |
| ConfigInitInterface | 初始化的接口 |
* getSpeechInit 语音识别与合成初始化实现
| **函数原型** | static boost::shared_ptr\<ConfigInitInterface\> getSpeechInit(std::string appid, std::deque\<std::string\> words) |
|---------------------|-------------------------------------------------------------------------------------------------------------------|
| **参数** | **说明** |
| appid | 讯飞语音开发平台对应的appid,请自行前往讯飞语音开发平台申请,网址是http://www.xfyun.cn/?ch=bdtg |
| words | 优先识别词的集合(可添加自己公司的名称等) |
| **返回** | |
| ConfigInitInterface | 初始化的接口
- 1、简介
- 2、运行环境
- 3、语义理解
- 3.1、语义理解效果展示
- 3.2、语义理解API文档
- 3.3、语义理解指令接口文档
- 3.4、语义理解示例
- 4、高级语音
- 4.1、语音解析
- 4.1.1、语音解析效果展示
- 4.1.2、语音解析API文档
- 4.1.3、语音解析用法用例
- 4.2、语音合成
- 4.2.1、语音合成效果展示
- 4.2.2、语音合成API文档
- 4.2.3、语音合成用法用例
- 4.3、音乐播放
- 4.3.1、音乐播放API文档
- 4.3.2、音乐播放用法用例
- 4.4、高级项目示例
- 5、语音唤醒
- 5.1、语音唤醒效果展示
- 5.2、语音唤醒API文档
- 5.3、语音唤醒用法用例
- 5.4、语音唤醒示例项目
- 6、常见的业务需求实现的示例
- 6.1、业务实现逻辑概要顺序
- 6.2、概要代码
- 6.3、项目示例
- 7、自定义高级语言
- 8、选择合适的开发工具说明
- 9、项目打开方式
- 10、项目依赖
- 11、常见问题
- 12、文档版本
- 13、联系方式
- 14、版权说明