BDSASRDefines.h 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. //
  2. // BDSASRDefines.h
  3. // BDSpeechClient
  4. //
  5. // Created by baidu on 16/6/6.
  6. // Copyright © 2016年 baidu. All rights reserved.
  7. //
  8. #ifndef BDSASRDefines_h
  9. #define BDSASRDefines_h
  10. #import <Foundation/Foundation.h>
  11. #pragma mark - ASR Delegate
  12. @protocol BDSClientASRDelegate<NSObject>
  13. - (void)VoiceRecognitionClientWorkStatus:(int)workStatus obj:(id)aObj; // TBDVoiceRecognitionClientWorkStatus
  14. @end
  15. #pragma mark - ASR Command
  16. extern NSString* BDS_ASR_CMD_START;
  17. extern NSString* BDS_ASR_CMD_STOP;
  18. extern NSString* BDS_ASR_CMD_CANCEL;
  19. extern NSString* BDS_ASR_CMD_LOAD_ENGINE;
  20. extern NSString* BDS_ASR_CMD_UNLOAD_ENGINE;
  21. #pragma mark - 设定采样率
  22. typedef enum TBDVoiceRecognitionRecordSampleRateFlags
  23. {
  24. EVoiceRecognitionRecordSampleRateAuto = 0,
  25. EVoiceRecognitionRecordSampleRate8K,
  26. EVoiceRecognitionRecordSampleRate16K,
  27. } TBDVoiceRecognitionRecordSampleRateFlags;
  28. #pragma mark - 设置识别语言
  29. typedef enum TBDVoiceRecognitionLanguage
  30. {
  31. EVoiceRecognitionLanguageChinese = 0,
  32. EVoiceRecognitionLanguageCantonese,
  33. EVoiceRecognitionLanguageEnglish,
  34. EVoiceRecognitionLanguageSichuanDialect,
  35. } TBDVoiceRecognitionLanguage;
  36. #pragma mark - 提示音类型
  37. typedef enum TBDVoiceRecognitionPlayTones
  38. {
  39. EVRPlayToneTypeStart = (1 << 0), // 开始识别提示音, record_start.caf (会影响端点检测准确率,建议不要与端点检测同时开启)
  40. EVRPlayToneTypeEnd = (1 << 1), // 结束识别提示音, record_end.caf
  41. EVRPlayToneTypeSuccess = (1 << 2), // 识别成功提示音, record_success.caf
  42. EVRPlayToneTypeFail = (1 << 3), // 识别失败提示音, record_fail.caf
  43. EVRPlayToneTypeCancel = (1 << 4), // 取消识别提示音, record_cancel.caf
  44. EVRPlayToneNone = 0, // 关闭提示音
  45. EVRPlayToneAll = (EVRPlayToneTypeStart | EVRPlayToneTypeEnd | EVRPlayToneTypeSuccess | EVRPlayToneTypeFail | EVRPlayToneTypeCancel) // 打开所有提示音
  46. } TBDVoiceRecognitionPlayTones;
  47. #pragma mark - 语音识别策略
  48. typedef enum TBDVoiceRecognitionStrategy
  49. {
  50. EVR_STRATEGY_ONLINE = 0, // 在线识别
  51. EVR_STRATEGY_BOTH = 4, // 并行模式
  52. } TBDVoiceRecognitionStrategy;
  53. #pragma mark - 语音识别离线引擎类型
  54. typedef enum TBDVoiceRecognitionOfflineEngineType
  55. {
  56. EVR_OFFLINE_ENGINE_INPUT = 0, // 离线引擎输入法模式
  57. EVR_OFFLINE_ENGINE_GRAMMER = 2, // 离线引擎语法模式
  58. } TBDVoiceRecognitionOfflineEngineType;
  59. #pragma mark - 语音识别类型
  60. typedef enum TBDVoiceRecognitionProperty
  61. {
  62. EVoiceRecognitionPropertyMusic = 10001, // 音乐
  63. EVoiceRecognitionPropertyVideo = 10002, // 视频
  64. EVoiceRecognitionPropertyApp = 10003, // 应用
  65. EVoiceRecognitionPropertyWeb = 10004, // web
  66. EVoiceRecognitionPropertySearch = 10005, // 热词
  67. EVoiceRecognitionPropertyEShopping = 10006, // 电商&购物
  68. EVoiceRecognitionPropertyHealth = 10007, // 健康&母婴
  69. EVoiceRecognitionPropertyCall = 10008, // 打电话
  70. EVoiceRecognitionPropertyMedicalCare = 10052, // 医疗
  71. EVoiceRecognitionPropertyCar = 10053, // 汽车
  72. EVoiceRecognitionPropertyCatering = 10054, // 娱乐餐饮
  73. EVoiceRecognitionPropertyFinanceAndEconomics = 10055, // 财经
  74. EVoiceRecognitionPropertyGame = 10056, // 游戏
  75. EVoiceRecognitionPropertyCookbook = 10057, // 菜谱
  76. EVoiceRecognitionPropertyAssistant = 10058, // 助手
  77. EVoiceRecognitionPropertyRecharge = 10059, // 话费充值
  78. EVoiceRecognitionPropertyMap = 10060, // 地图
  79. EVoiceRecognitionPropertyInput = 20000, // 输入
  80. } TBDVoiceRecognitionProperty;
  81. #pragma mark - 语音识别状态
  82. typedef enum TBDVoiceRecognitionClientWorkStatus
  83. {
  84. EVoiceRecognitionClientWorkStatusStartWorkIng, // 识别工作开始,开始采集及处理数据
  85. EVoiceRecognitionClientWorkStatusStart, // 检测到用户开始说话
  86. EVoiceRecognitionClientWorkStatusEnd, // 本地声音采集结束,等待识别结果返回并结束录音
  87. EVoiceRecognitionClientWorkStatusNewRecordData, // 录音数据回调
  88. EVoiceRecognitionClientWorkStatusFlushData, // 连续上屏
  89. EVoiceRecognitionClientWorkStatusFinish, // 语音识别功能完成,服务器返回正确结果
  90. EVoiceRecognitionClientWorkStatusMeterLevel, // 当前音量回调
  91. EVoiceRecognitionClientWorkStatusCancel, // 用户取消
  92. EVoiceRecognitionClientWorkStatusError, // 发生错误
  93. /* 离线引擎状态 */
  94. EVoiceRecognitionClientWorkStatusLoaded, // 离线引擎加载完成
  95. EVoiceRecognitionClientWorkStatusUnLoaded, // 离线引擎卸载完成
  96. /* CHUNK状态 */
  97. EVoiceRecognitionClientWorkStatusChunkThirdData, // CHUNK: 识别结果中的第三方数据
  98. EVoiceRecognitionClientWorkStatusChunkNlu, // CHUNK: 识别结果中的语义结果
  99. EVoiceRecognitionClientWorkStatusChunkEnd, // CHUNK: 识别过程结束
  100. /* LOG */
  101. EVoiceRecognitionClientWorkStatusFeedback, // Feedback: 识别过程反馈的打点数据
  102. /* Only for iOS */
  103. EVoiceRecognitionClientWorkStatusRecorderEnd, // 录音机关闭,页面跳转需检测此时间,规避状态条 (iOS)
  104. /* LONG SPEECH END */
  105. EVoiceRecognitionClientWorkStatusLongSpeechEnd // 长语音结束状态
  106. } TBDVoiceRecognitionClientWorkStatus;
  107. #pragma mark - 语音识别错误通知状态分类
  108. typedef enum TVoiceRecognitionClientErrorDomain
  109. {
  110. EVRClientErrorDomainRecord = 10, // 录音设备出错
  111. EVRClientErrorDomainVAD = 20, // 语音数据处理过程出错
  112. EVRClientErrorDomainOnline = 30, // 在线识别引擎出错
  113. EVRClientErrorDomainLocalNetwork = 31, // 本地网络联接出错
  114. EVRClientErrorDomainHTTP = 32, // HTTP协议错误
  115. EVRClientErrorDomainServer = 33, // 服务器返回错误
  116. EVRClientErrorDomainOffline = 34, // 离线引擎返回错误
  117. EVRClientErrorDomainCommom = 40, // 其他错误
  118. } TVoiceRecognitionClientErrorDomain;
  119. #pragma mark - 语音识别错误通知状态
  120. typedef enum TVoiceRecognitionClientErrorCode
  121. {
  122. EVRClientErrorCodeRecoderException = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 1), // 录音设备异常
  123. EVRClientErrorCodeRecoderNoPermission = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 2), // 无录音权限
  124. EVRClientErrorCodeRecoderUnAvailable = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 3), // 录音设备不可用
  125. EVRClientErrorCodeInterruption = (EVRClientErrorDomainRecord << 16) | (0x0000FFFF & 4), // 录音中断
  126. EVRClientErrorCodeVADException = (EVRClientErrorDomainVAD << 16) | (0x0000FFFF & 1), // 前端库异常
  127. EVRClientErrorCodeNoSpeech = (EVRClientErrorDomainVAD << 16) | (0x0000FFFF & 2), // 用户未说话
  128. EVRClientErrorCodeShort = (EVRClientErrorDomainVAD << 16) | (0x0000FFFF & 3), // 用户说话声音太短
  129. EVRClientErrorCodeDecoderExceptioin = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 1), // 在线识别引擎异常
  130. EVRClientErrorCodeDecoderNetworkUnavailable = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 2), // 网络不可用
  131. EVRClientErrorCodeDecoderTokenFailed = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 3), // 获取token失败
  132. EVRClientErrorCodeDecoderResolveUrlFailed = (EVRClientErrorDomainOnline << 16) | (0x0000FFFF & 4), // 解析url失败
  133. EVRClientErrorCodeLocalTimeout = (EVRClientErrorDomainLocalNetwork << 16) | (0x0000FFFF & 1), // 请求超时
  134. EVRClientErrorCodeServerParamError = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3001), // 协议参数错误
  135. EVRClientErrorCodeServerRecognError = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3002), // 识别过程出错
  136. EVRClientErrorCodeServerNoFindResult = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3003), // 没有找到匹配结果
  137. EVRClientErrorCodeServerAppNameUnknownError = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3004), // AppnameUnkown错误
  138. EVRClientErrorCodeServerSpeechQualityProblem = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3005), // 声音不符合识别要求
  139. EVRClientErrorCodeServerSpeechTooLong = (EVRClientErrorDomainServer << 16) | (0x0000FFFF & -3006), // 语音过长
  140. EVRClientErrorCodeCommonBusy = (EVRClientErrorDomainCommom << 16) | (0x0000FFFF & 1), // 识别器忙
  141. EVRClientErrorCodeCommonPropertyListInvalid = (EVRClientErrorDomainCommom << 16) | (0x0000FFFF & 2), // 垂类设置有误
  142. EVRClientErrorCodeCommonEnqueueError = (EVRClientErrorDomainCommom << 16) | (0x0000FFFF & 3) // 语音数据enqueue失败
  143. } TVoiceRecognitionClientErrorCode;
  144. #pragma mark - 调试日志级别
  145. typedef enum TBDVoiceRecognitionDebugLogLevel
  146. {
  147. EVRDebugLogLevelOff = 0,
  148. EVRDebugLogLevelFatal = 1,
  149. EVRDebugLogLevelError = 2,
  150. EVRDebugLogLevelWarning = 3,
  151. EVRDebugLogLevelInformation = 4,
  152. EVRDebugLogLevelDebug = 5,
  153. EVRDebugLogLevelTrace = 6
  154. } TBDVoiceRecognitionDebugLogLevel;
  155. #endif /* BDSASRDefines_h */