语音识别(Recognizer)
#类IFlyDataUploader
#IFlyDataUploader Class Reference
Inherits from | NSObject |
---|---|
Declared in | IFlyDataUploader.h |
#Overview
#dataName
@property (nonatomic, copy) NSString *dataName
IFlyDataUploader.h
#data
@property (nonatomic, copy) NSString *data
IFlyDataUploader.h
#uploadDataWithCompletionHandler:name:data:
- (void)uploadDataWithCompletionHandler:(IFlyUploadDataCompletionHandler)*completionHandler* name:(NSString *)*name* data:(NSString *)*data
#Parameters
completionHandler | -[in] 上传完成回调 |
---|---|
name | -[in] 上传的内容 名称,名称最好和你要上传的数据内容相关,不可以为nil |
data | -[in] 上传的数据,以utf8编码,不可以为nil |
IFlyDataUploader.h
#setParameter:forKey:
- (void)setParameter:(NSString *)*parameter* forKey:(NSString *)*key
#Parameters
parameter | 参数值 |
---|---|
key | 参数名 |
IFlyDataUploader.h
#类IFlyRecognizerView
#IFlyRecognizerView Class Reference
Inherits from | UIView |
---|---|
Conforms to | NSObject |
Declared in | IFlyRecognizerView.h |
#Overview
录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消)
出错时触摸控件,重新开启会话(相当于旧版的再说一次);触摸其他位置,取消录音,结束会话(取消)
#delegate
@property (nonatomic, assign) id delegate
IFlyRecognizerView.h
#initWithOrigin:
- (id)initWithOrigin:(CGPoint)*origin
origin | 控件左上角的坐标 |
---|---|
IFlyRecognizerView 对象
IFlyRecognizerView.h
#initWithCenter:
- (id)initWithCenter:(CGPoint)*center
center | 控件中心的坐标 |
---|---|
IFlyRecognizerView.h
IFlyRecognizerView.h
#setAutoRotate:
- (void)setAutoRotate:(BOOL)*autoRotate
autoRotate | 默认值YES,横竖屏自适应 |
---|---|
IFlyRecognizerView.h
#setParameter:forKey:
- (BOOL)setParameter:(NSString *)*value* forKey:(NSString *)*key
value | 参数对应的取值 |
---|---|
key | 识别引擎参数 |
成功返回YES;失败返回NO
识别的引擎参数(key)取值如下:
参数 | 描述 |
---|---|
domain | 应用的领域: 取值为:iat 普通文本听写; asr:关键词识别; |
vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms; engine指定iat识别默认值为5000; 其他情况默认值为 4000,范围 0-10000。 |
vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms; sms 识别默认值为 1800; 其他默认值为 700,范围 0-10000。 |
sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。 |
asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。 |
result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。 |
grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。 |
asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。 路径为Documents/(指定值)。 不设置或者设置为nil,则不保存音频。 |
params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 |
IFlyRecognizerView.h
#parameterForKey:
- (NSString *)parameterForKey:(NSString *)*key
key | 参数key |
---|---|
参数值
IFlyRecognizerView.h
#start
- (BOOL)start
成功返回YES;失败返回NO
IFlyRecognizerView.h
#cancel
- (void)cancel
IFlyRecognizerView.h
#类IFlySpeechRecognizer
#IFlySpeechRecognizer Class Reference
Inherits from | NSObject |
---|---|
Conforms to | IFlySpeechRecognizerDelegate |
Declared in | IFlySpeechRecognizer.h |
#Overview
#Other Methods
#delegate
@property (nonatomic, assign) id delegate
IFlySpeechRecognizer.h
#sharedInstance
+ (instancetype)sharedInstance
识别对象的单例 Declared In
IFlySpeechRecognizer.h
#destroy
- (BOOL)destroy
成功返回YES,失败返回NO
IFlySpeechRecognizer.h
#setParameter:forKey:
- (BOOL)setParameter:(NSString *)*value* forKey:(NSString *)*key*
value | 参数对应的取值 |
---|---|
key | 识别引擎参数 |
参数 | 描述 |
---|---|
domain | 应用的领域: 取值为:iat、search、video、poi、music、asr; iat:普通文本听写; search:热词搜索; video:视频音乐搜索; asr:关键词识别; |
vad_bos | 前端点检测: 静音超时时间,即用户多长时间不说话则当做超时处理; 单位:ms; engine指定iat识别默认值为5000; 其他情况默认值为 4000,范围 0-10000。 |
vad_eos | 后断点检测: 后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音;单位:ms; sms 识别默认值为 1800; 其他默认值为 700,范围 0-10000。 |
sample_rate | 采样率:目前支持的采样率设置有 16000 和 8000。 |
asr_ptt | 标点符号设置: 默认为 1,当设置为 0 时,将返回无标点符号文本。 |
result_type | 返回结果的数据格式: 可设置为json,xml,plain,默认为json。 |
grammarID | 识别的语法id: 只针对 domain 设置为”asr”的应用。 |
asr_audio_path | 音频文件名: 设置此参数后,将会自动保存识别的录音文件。 路径为Documents/(指定值)。 不设置或者设置为nil,则不保存音频。 |
params | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 |
IFlySpeechRecognizer.h
#parameterForKey:
- (NSString *)parameterForKey:(NSString *)*key
#Parameters
key | 参数key |
---|---|
参数值
IFlySpeechRecognizer.h
#startListening
- (BOOL)startListening
成功返回YES;失败返回NO
同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onCompleted回调返回后请求下一路回话。
IFlySpeechRecognizer.h
#stopListening
调用此函数会停止录音,并开始进行语音识别
- (void)stopListening
IFlySpeechRecognizer.h
#cancel
- (void)cancel
IFlySpeechRecognizer.h
#buildGrammarCompletionHandler:grammarType:grammarContent:
- (int)buildGrammarCompletionHandler:(IFlyOnBuildFinishCompletionHandler)*completionHandler* grammarType:(NSString *)*grammarType* grammarContent:(NSString *)*grammarContent
completionHandler | 上传语法完成回调 |
---|---|
grammarType | 语法类型 |
grammarContent | 语法内容 |
错误码
IFlySpeechRecognizer.h
#isListening
@property (nonatomic, readonly) BOOL isListening
IFlySpeechRecognizer.h
#IFlyStreamRecognizer Methods
#writeAudio:
- (BOOL)writeAudio:(NSData *)*audioData
#Parameters
audioData | 音频数据 |
---|---|
写入成功返回YES,写入失败返回NO
此方法的使用示例如下:
[_iFlySpeechRecognizer setParameter:@"-1" value:@"audio_source"];
[_iFlySpeechRecognizer startListening];
[_iFlySpeechRecognizer writeAudio:audioData1];
[_iFlySpeechRecognizer writeAudio:audioData2];
...
[_iFlySpeechRecognizer stopListening];
IFlySpeechRecognizer.h
#类IFlyUserWords
#IFlyUserWords Class Reference
Inherits from | NSObject |
---|---|
Declared in | IFlyUserWords.h |
#Overview
#initWithJson:
- (id)initWithJson:(NSString *)*json
json | 初始化时传入的数据 |
---|---|
IFlyUserWords对象
在进行初始化时,需要传入的格式如下:
{\"userword\":[{\"name\":\"iflytek\",\"words\":[\"科大讯飞\", \"云平台\",\"用户词条\",\"开始上传词条\"]}]}
IFlyUserWords.h
#toString
- (NSString *)toString
没有数据或者格式不对时返回nil
IFlyUserWords.h
#getWords:
- (NSArray *)getWords:(NSString *)*key
key | 在putword:value中设置的key |
---|---|
key对应的数组
IFlyUserWords.h
#putWord:value:
- (BOOL)putWord:(NSString *)*key* value:(NSString *)*value
key | 用户词对应的key |
---|---|
value | 上传的用户词数据 |
成功返回YES,失败返回NO
IFlyUserWords.h
#putwords:words:
- (BOOL)putwords:(NSString *)*key* words:(NSArray *)*words
key | 用户词对应的key |
---|---|
words | 上传的用户词数据 |
成功返回YES,失败返回NO
IFlyUserWords.h
#containsKey:
- (BOOL)containsKey:(NSString *)*key
key | 用户词对应的key |
---|---|
成功返回YES,失败返回NO
#协议IFlyRecognizerViewDelegate
#IFlyRecognizerViewDelegate Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | IFlyRecognizerViewDelegate.h |
#Overview
#onResult:isLast: required method
- (void)onResult:(NSArray *)*resultArray* isLast:(BOOL)*isLast
resultArray | 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度 |
---|---|
isLast | -[out] 是否最后一个结果 |
IFlyRecognizerViewDelegate.h
#onCompleted: required method
- (void)onCompleted:(IFlySpeechError *)*error
error | 识别结束错误码 |
---|---|
IFlyRecognizerViewDelegate.h
#协议IFlySpeechRecognizerDelegate
#IFlySpeechRecognizerDelegate Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | IFlySpeechRecognizerDelegate.h |
#Overview
#onCompleted: required method
- (void)onCompleted:(IFlySpeechError *)*errorCode
errorCode | 错误描述 |
---|---|
在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理,当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用cancel函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了startListenging函数则会报错误。
IFlySpeechRecognizerDelegate.h
#onResults:isLast: required method
- (void)onResults:(NSArray *)*results* isLast:(BOOL)*isLast
#Parameters
results | -[out] 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度。 |
---|---|
isLast | -[out] 是否最后一个结果 |
appendFormat:@“%@”,key];//合并结果 } }
在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
使用results的示例如下:
- (void) onResults:(NSArray ) results{
NSMutableString result = [[NSMutableString alloc] init];
NSDictionary dic = [results objectAtIndex:0];
for (NSString key in dic){
IFlySpeechRecognizerDelegate.h
#onVolumeChanged:
在录音过程中,回调音频的音量。
- (void)onVolumeChanged:(int)*volume
volume | -[out] 音量,范围从0-30 |
---|---|
IFlySpeechRecognizerDelegate.h
#Declared In
IFlySpeechRecognizerDelegate.h
#onBeginOfSpeech
当调用了startListening函数之后,如果没有发生错误则会回调此函数。
如果发生错误则回调onCompleted:函数
- (void)onBeginOfSpeech
IFlySpeechRecognizerDelegate.h
#onEndOfSpeech
当调用了stopListening函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
如果发生错误则回调onCompleted:函数
- (void)onEndOfSpeech
IFlySpeechRecognizerDelegate.h
#onCancel
当调用了cancel函数之后,会回调此函数,在调用了cancel函数和回调onCompleted之前会有一个
短暂时间,您可以在此函数中实现对这段时间的界面显示。
- (void)onCancel
IFlySpeechRecognizerDelegate.h
#getAudioKey:
- (void)getAudioKey:(NSString *)*key
key | 音频Key |
---|---|
IFlySpeechRecognizerDelegate.h
#onEvent:arg0:arg1:data:
根据事件类型返回额外的数据
- (void)onEvent:(int)*eventType* arg0:(int)*arg0* arg1:(int)*arg1* data:(NSData *)*eventData
#Parameters
eventType | 事件类型,具体参见IFlySpeechEventType的IFlySpeechEventTypeVoiceChangeResult枚举。 |
---|---|
arg0 | arg0 |
arg1 | arg1 |
eventData | 事件数据 |
IFlySpeechRecognizerDelegate.h
修改于 2023-12-21 04:12:16