IFlySpeechRecognizer.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. //
  2. // IFlySpeechRecognizer.h
  3. // MSC
  4. //
  5. // Created by iflytek on 13-3-19.
  6. // Copyright (c) 2013年 iflytek. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "IFlySpeechRecognizerDelegate.h"
  10. #define IFLY_AUDIO_SOURCE_MIC @"1"
  11. #define IFLY_AUDIO_SOURCE_STREAM @"-1"
  12. /*!
  13. * 语音识别类
  14. * 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。
  15. */
  16. @interface IFlySpeechRecognizer : NSObject<IFlySpeechRecognizerDelegate>
  17. /** 设置委托对象 */
  18. @property(nonatomic,assign) id<IFlySpeechRecognizerDelegate> delegate ;
  19. /*!
  20. * 返回识别对象的单例
  21. *
  22. * @return 识别对象的单例
  23. */
  24. + (instancetype) sharedInstance;
  25. /*!
  26. * 销毁识别对象。
  27. *
  28. * @return 成功返回YES,失败返回NO
  29. */
  30. - (BOOL) destroy;
  31. /*
  32. * | ------------- |-----------------------------------------------------------
  33. * | 参数 | 描述
  34. * | ------------- |-----------------------------------------------------------
  35. * | domain |应用的领域: 取值为:iat、search、video、poi、music、asr;
  36. * | | iat:普通文本听写;
  37. * | | search:热词搜索;
  38. * | | video:视频音乐搜索;
  39. * | | asr:关键词识别;
  40. * | ------------- |-----------------------------------------------------------
  41. * | vad_bos |前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;
  42. * | | engine指定iat识别默认值为5000;
  43. * | | 其他情况默认值为 4000,范围 0-10000。
  44. * | ------------- |-----------------------------------------------------------
  45. * | vad_eos |后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,
  46. * | | 自动停止录音;单位:ms;
  47. * | | sms 识别默认值为 1800;
  48. * | | 其他默认值为 700,范围 0-10000。
  49. * | ------------- |-----------------------------------------------------------
  50. * | sample_rate |采样率:目前支持的采样率设置有 16000 和 8000。
  51. * | ------------- |-----------------------------------------------------------
  52. * | asr_ptt |标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。
  53. * | ------------- |-----------------------------------------------------------
  54. * | result_type |返回结果的数据格式: 可设置为json,xml,plain,默认为json。
  55. * | ------------- |-----------------------------------------------------------
  56. * | grammarID |识别的语法id: 只针对 domain 设置为”asr”的应用。
  57. * | ------------- |-----------------------------------------------------------
  58. * | asr_audio_path|音频文件名: 设置此参数后,将会自动保存识别的录音文件。
  59. * | | 路径为Documents/(指定值)。
  60. * | | 不设置或者设置为nil,则不保存音频。
  61. * | ------------- |-----------------------------------------------------------
  62. * | params |扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。
  63. * | ------------- |-----------------------------------------------------------
  64. *
  65. */
  66. /*!
  67. * 设置识别引擎的参数
  68. * 识别的引擎参数(key)取值如下:
  69. * <table>
  70. * <thead>
  71. * <tr><th>*参数</th><th><em>描述</em></th>
  72. * </tr>
  73. * </thead>
  74. * <tbody>
  75. * <tr><td>domain</td><td>应用的领域: 取值为:iat、search、video、poi、music、asr;<br/>iat:普通文本听写;<br/>search:热词搜索;<br/>video:视频音乐搜索;<br/>video:视频音乐搜索;<br/>asr:关键词识别;</td></tr>
  76. * <tr><td>vad_bos</td><td>前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms;<br/>engine指定iat识别默认值为5000;<br/>其他情况默认值为 4000,范围 0-10000。</td></tr>
  77. * <tr><td>vad_eos</td><td>后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,<br/>自动停止录音;单位:ms;<br/>sms 识别默认值为 1800;<br/>其他默认值为 700,范围 0-10000。</td></tr>
  78. * <tr><td>sample_rate</td><td>采样率:目前支持的采样率设置有 16000 和 8000。</td></tr>
  79. * <tr><td>asr_ptt</td><td>标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。</td></tr>
  80. * <tr><td>result_type</td><td>返回结果的数据格式: 可设置为json,xml,plain,默认为json。</td></tr>
  81. * <tr><td>grammarID</td><td>识别的语法id: 只针对 domain 设置为”asr”的应用。</td></tr>
  82. * <tr><td>asr_audio_path</td><td>音频文件名: 设置此参数后,将会自动保存识别的录音文件。<br/> 路径为Documents/(指定值)。<br/>不设置或者设置为nil,则不保存音频。</td></tr>
  83. * <tr><td>params</td><td>扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。</td></tr>
  84. * </tbody>
  85. * </table>
  86. * @param value 参数对应的取值
  87. * @param key 识别引擎参数
  88. *
  89. * @return 成功返回YES;失败返回NO
  90. */
  91. -(BOOL) setParameter:(NSString *) value forKey:(NSString*)key;
  92. /*!
  93. * 获取识别引擎参数
  94. *
  95. * @param key 参数key
  96. *
  97. * @return 参数值
  98. */
  99. -(NSString*) parameterForKey:(NSString *)key;
  100. /*!
  101. * 开始识别
  102. * 同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,
  103. * 请在onError回调返回后请求下一路回话。
  104. *
  105. * @return 成功返回YES;失败返回NO
  106. */
  107. - (BOOL) startListening;
  108. /*!
  109. * 停止录音
  110. * 调用此函数会停止录音,并开始进行语音识别
  111. */
  112. - (void)stopListening;
  113. /*!
  114. * 取消本次会话
  115. */
  116. - (void)cancel;
  117. /*!
  118. * 上传语法
  119. *
  120. * @param completionHandler 上传语法完成回调
  121. * @param grammarType 语法类型
  122. * @param grammarContent 语法内容
  123. *
  124. * @return 错误码
  125. */
  126. - (int) buildGrammarCompletionHandler:(IFlyOnBuildFinishCompletionHandler)completionHandler
  127. grammarType:(NSString *)grammarType
  128. grammarContent:(NSString *)grammarContent;
  129. /** 是否正在识别
  130. */
  131. @property (nonatomic, readonly) BOOL isListening;
  132. @end
  133. /*!
  134. * 音频流识别
  135. * 音频流识别可以将文件分段写入
  136. */
  137. @interface IFlySpeechRecognizer(IFlyStreamRecognizer)
  138. /*!
  139. * 写入音频流
  140. * 此方法的使用示例如下:
  141. * <pre><code>[_iFlySpeechRecognizer setParameter:@"audio_source" value:@"-1"];
  142. * [_iFlySpeechRecognizer startListening];
  143. * [_iFlySpeechRecognizer writeAudio:audioData1];
  144. * [_iFlySpeechRecognizer writeAudio:audioData2];
  145. * ...
  146. * [_iFlySpeechRecognizer stopListening];
  147. * </code></pre>
  148. *
  149. * @param audioData 音频数据
  150. *
  151. * @return 写入成功返回YES,写入失败返回NO
  152. */
  153. - (BOOL) writeAudio:(NSData *) audioData;
  154. @end