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