IFlySpeechRecognizerDelegate.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. //
  2. // IFlySpeechRecognizerDelegate.h
  3. // MSC
  4. //
  5. // Created by ypzhao on 13-3-27.
  6. // Copyright (c) 2013年 iflytek. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @class IFlySpeechError;
  10. /*!
  11. * 构建语法结束回调
  12. *
  13. * @param grammarId 语法id
  14. * @param error 错误描述
  15. */
  16. typedef void(^IFlyOnBuildFinishCompletionHandler)(NSString* grammarId,IFlySpeechError * error);
  17. /*!
  18. * 语音识别协议<br>
  19. * 在使用语音识别时,需要实现这个协议中的方法.
  20. */
  21. @protocol IFlySpeechRecognizerDelegate <NSObject>
  22. @required
  23. /*!
  24. * 识别结果回调
  25. *
  26. * 在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理,当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用`cancel`函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了`startListenging`函数则会报错误。
  27. *
  28. * @param errorCode 错误描述
  29. */
  30. - (void) onCompleted:(IFlySpeechError *) errorCode;
  31. /*!
  32. * 识别结果回调
  33. *
  34. * 在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。<br>
  35. * 使用results的示例如下:
  36. * <pre><code>
  37. * - (void) onResults:(NSArray *) results{
  38. * NSMutableString *result = [[NSMutableString alloc] init];
  39. * NSDictionary *dic = [results objectAtIndex:0];
  40. * for (NSString *key in dic){
  41. * [result appendFormat:@"%@",key];//合并结果
  42. * }
  43. * }
  44. * </code></pre>
  45. *
  46. * @param results -[out] 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度。
  47. * @param isLast -[out] 是否最后一个结果
  48. */
  49. - (void) onResults:(NSArray *) results isLast:(BOOL)isLast;
  50. @optional
  51. /*!
  52. * 音量变化回调<br>
  53. * 在录音过程中,回调音频的音量。
  54. *
  55. * @param volume -[out] 音量,范围从0-30
  56. */
  57. - (void) onVolumeChanged: (int)volume;
  58. /*!
  59. * 开始录音回调<br>
  60. * 当调用了`startListening`函数之后,如果没有发生错误则会回调此函数。<br>
  61. * 如果发生错误则回调onCompleted:函数
  62. */
  63. - (void) onBeginOfSpeech;
  64. /*!
  65. * 停止录音回调<br>
  66. * 当调用了`stopListening`函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。<br>
  67. * 如果发生错误则回调onCompleted:函数
  68. */
  69. - (void) onEndOfSpeech;
  70. /*!
  71. * 取消识别回调<br>
  72. * 当调用了`cancel`函数之后,会回调此函数,在调用了cancel函数和回调onCompleted之前会有一个<br>
  73. * 短暂时间,您可以在此函数中实现对这段时间的界面显示。
  74. */
  75. - (void) onCancel;
  76. #ifdef _EDUCATION_
  77. /*!
  78. * 返回音频Key
  79. *
  80. * @param key 音频Key
  81. */
  82. - (void) getAudioKey:(NSString *)key;
  83. #endif
  84. /*!
  85. * 扩展事件回调<br>
  86. * 根据事件类型返回额外的数据
  87. *
  88. * @param eventType 事件类型,具体参见IFlySpeechEventType的IFlySpeechEventTypeVoiceChangeResult枚举。
  89. * @param arg0 arg0
  90. * @param arg1 arg1
  91. * @param eventData 事件数据
  92. */
  93. - (void) onEvent:(int)eventType arg0:(int)arg0 arg1:(int)arg1 data:(NSData *)eventData;
  94. @end