语音识别(Recognizer)
这里介绍的是iOS API关于语音识别(Recognizer)的相关说明,点击右侧目录可快速找到相应文件。
#类IFlyDataUploader
#IFlyDataUploader Class Reference
Inherits from | NSObject |
---|---|
Declared in | IFlyDataUploader.h |
#Overview
数据上传类,主要用于上传语法文件或上传联系人、词表等个性化数据。
#dataName
数据名称
@property (nonatomic, copy) NSString *dataName
Declared In
IFlyDataUploader.h
#data
数据
@property (nonatomic, copy) NSString *data
Declared In
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 |
Declared In
IFlyDataUploader.h
#setParameter:forKey:
设置上传数据参数
- (void)setParameter:(NSString *)*parameter* forKey:(NSString *)*key
#Parameters
parameter | 参数值 |
---|---|
key | 参数名 |
Declared In
IFlyDataUploader.h
#类IFlyRecognizerView
#IFlyRecognizerView Class Reference
Inherits from | UIView |
---|---|
Conforms to | NSObject |
Declared in | IFlyRecognizerView.h |
#Overview
语音识别控件
录音时触摸控件结束录音,开始识别(相当于旧版的停止);触摸其他位置,取消录音,结束会话(取消)
出错时触摸控件,重新开启会话(相当于旧版的再说一次);触摸其他位置,取消录音,结束会话(取消)
#delegate
设置委托对象
@property (nonatomic, assign) id delegate
Declared In
IFlyRecognizerView.h
#initWithOrigin:
初始化控件
- (id)initWithOrigin:(CGPoint)*origin
Parameters
origin | 控件左上角的坐标 |
---|---|
Return Value
IFlyRecognizerView 对象
Declared In
IFlyRecognizerView.h
#initWithCenter:
初始化控件
- (id)initWithCenter:(CGPoint)*center
Parameters
center | 控件中心的坐标 |
---|---|
Declared In
IFlyRecognizerView.h
Return Value
IFlyRecognizerView 对象
Declared In
IFlyRecognizerView.h
#setAutoRotate:
设置横竖屏自适应
- (void)setAutoRotate:(BOOL)*autoRotate
Parameters
autoRotate | 默认值YES,横竖屏自适应 |
---|---|
Declared In
IFlyRecognizerView.h
#setParameter:forKey:
设置识别引擎的参数
- (BOOL)setParameter:(NSString *)*value* forKey:(NSString *)*key
Parameters
value | 参数对应的取值 |
---|---|
key | 识别引擎参数 |
Return Value
成功返回YES;失败返回NO
Discussion
识别的引擎参数(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 | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 |
Declared In
IFlyRecognizerView.h
#parameterForKey:
获取识别引擎参数
- (NSString *)parameterForKey:(NSString *)*key
Parameters
key | 参数key |
---|---|
Return Value
参数值
Declared In
IFlyRecognizerView.h
#start
开始识别
- (BOOL)start
Return Value
成功返回YES;失败返回NO
Declared In
IFlyRecognizerView.h
#cancel
取消本次识别
- (void)cancel
Declared In
IFlyRecognizerView.h
#类IFlySpeechRecognizer
#IFlySpeechRecognizer Class Reference
Inherits from | NSObject |
---|---|
Conforms to | IFlySpeechRecognizerDelegate |
Declared in | IFlySpeechRecognizer.h |
#Overview
语音识别类 此类现在设计为单例,你在使用中只需要创建此对象,不能调用release/dealloc函数去释放此对象。所有关于语音识别的操作都在此类中。
音频流识别 音频流识别可以将文件分段写入
#Other Methods
#delegate
设置委托对象
@property (nonatomic, assign) id delegate
Declared In
IFlySpeechRecognizer.h
#sharedInstance
返回识别对象的单例
+ (instancetype)sharedInstance
Return Value
识别对象的单例 Declared In
IFlySpeechRecognizer.h
#destroy
销毁识别对象。
- (BOOL)destroy
Return Value
成功返回YES,失败返回NO
Declared In
IFlySpeechRecognizer.h
#setParameter:forKey:
设置识别引擎的参数
- (BOOL)setParameter:(NSString *)*value* forKey:(NSString *)*key*
Parameters
value | 参数对应的取值 |
---|---|
key | 识别引擎参数 |
Return Value
成功返回YES;失败返回NO
Discussion
识别的引擎参数(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 | 扩展参数: 对于一些特殊的参数可在此设置,一般用于设置语义。 |
Declared In
IFlySpeechRecognizer.h
#parameterForKey:
获取识别引擎参数
- (NSString *)parameterForKey:(NSString *)*key
#Parameters
key | 参数key |
---|---|
Return Value
参数值
Declared In
IFlySpeechRecognizer.h
#startListening
开始识别
- (BOOL)startListening
Return Value
成功返回YES;失败返回NO
Discussion
同时只能进行一路会话,这次会话没有结束不能进行下一路会话,否则会报错。若有需要多次回话,请在onCompleted回调返回后请求下一路回话。
Declared In
IFlySpeechRecognizer.h
#stopListening
停止录音
调用此函数会停止录音,并开始进行语音识别
- (void)stopListening
Declared In
IFlySpeechRecognizer.h
#cancel
取消本次会话
- (void)cancel
Declared In
IFlySpeechRecognizer.h
#buildGrammarCompletionHandler:grammarType:grammarContent:
上传语法
- (int)buildGrammarCompletionHandler:(IFlyOnBuildFinishCompletionHandler)*completionHandler* grammarType:(NSString *)*grammarType* grammarContent:(NSString *)*grammarContent
Parameters
completionHandler | 上传语法完成回调 |
---|---|
grammarType | 语法类型 |
grammarContent | 语法内容 |
Return Value
错误码
Declared In
IFlySpeechRecognizer.h
#isListening
是否正在识别
@property (nonatomic, readonly) BOOL isListening
Declared In
IFlySpeechRecognizer.h
#IFlyStreamRecognizer Methods
#writeAudio:
写入音频流
- (BOOL)writeAudio:(NSData *)*audioData
#Parameters
audioData | 音频数据 |
---|---|
Return Value
写入成功返回YES,写入失败返回NO
Discussion
此方法的使用示例如下:
[_iFlySpeechRecognizer setParameter:@"-1" value:@"audio_source"];
[_iFlySpeechRecognizer startListening];
[_iFlySpeechRecognizer writeAudio:audioData1];
[_iFlySpeechRecognizer writeAudio:audioData2];
...
[_iFlySpeechRecognizer stopListening];
Declared In
IFlySpeechRecognizer.h
#类IFlyUserWords
#IFlyUserWords Class Reference
Inherits from | NSObject |
---|---|
Declared in | IFlyUserWords.h |
#Overview
用户词表类 获取用户词表是为了更好的语音识别(iat),用户词表也属于个性化的一部分.
#initWithJson:
初始化对象
- (id)initWithJson:(NSString *)*json
Parameters
json | 初始化时传入的数据 |
---|---|
Return Value
IFlyUserWords对象
Discussion
在进行初始化时,需要传入的格式如下:
{\"userword\":[{\"name\":\"iflytek\",\"words\":[\"科大讯飞\", \"云平台\",\"用户词条\",\"开始上传词条\"]}]}
Declared In
IFlyUserWords.h
#toString
将数据转化为上传的数据格式
- (NSString *)toString
Return Value
没有数据或者格式不对时返回nil
Declared In
IFlyUserWords.h
#getWords:
返回key对应的数据
- (NSArray *)getWords:(NSString *)*key
Parameters
key | 在putword:value中设置的key |
---|---|
Return Value
key对应的数组
Declared In
IFlyUserWords.h
#putWord:value:
添加一条用户词数据
- (BOOL)putWord:(NSString *)*key* value:(NSString *)*value
Parameters
key | 用户词对应的key |
---|---|
value | 上传的用户词数据 |
Return Value
成功返回YES,失败返回NO
Declared In
IFlyUserWords.h
#putwords:words:
添加一组数据
- (BOOL)putwords:(NSString *)*key* words:(NSArray *)*words
Parameters
key | 用户词对应的key |
---|---|
words | 上传的用户词数据 |
Return Value
成功返回YES,失败返回NO
Declared In
IFlyUserWords.h
#containsKey:
是否包含key对应的用户词数据
- (BOOL)containsKey:(NSString *)*key
Parameters
key | 用户词对应的key |
---|---|
Return Value
成功返回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
Parameters
resultArray | 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度 |
---|---|
isLast | -[out] 是否最后一个结果 |
Declared In
IFlyRecognizerViewDelegate.h
#onCompleted: required method
识别结束回调
- (void)onCompleted:(IFlySpeechError *)*error
Parameters
error | 识别结束错误码 |
---|---|
Declared In
IFlyRecognizerViewDelegate.h
#协议IFlySpeechRecognizerDelegate
#IFlySpeechRecognizerDelegate Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | IFlySpeechRecognizerDelegate.h |
#Overview
语音识别协议 在使用语音识别时,需要实现这个协议中的方法.
#onCompleted: required method
识别结果回调
- (void)onCompleted:(IFlySpeechError *)*errorCode
Parameters
errorCode | 错误描述 |
---|---|
Discussion
在进行语音识别过程中的任何时刻都有可能回调此函数,你可以根据errorCode进行相应的处理,当errorCode没有错误时,表示此次会话正常结束;否则,表示此次会话有错误发生。特别的当调用cancel函数时,引擎不会自动结束,需要等到回调此函数,才表示此次会话结束。在没有回调此函数之前如果重新调用了startListenging函数则会报错误。
Declared In
IFlySpeechRecognizerDelegate.h
#onResults:isLast: required method
识别结果回调
- (void)onResults:(NSArray *)*results* isLast:(BOOL)*isLast
#Parameters
results | -[out] 识别结果,NSArray的第一个元素为NSDictionary,NSDictionary的key为识别结果,sc为识别结果的置信度。 |
---|---|
isLast | -[out] 是否最后一个结果 |
Return Value
appendFormat:@“%@”,key];//合并结果 } }
Discussion
在识别过程中可能会多次回调此函数,你最好不要在此回调函数中进行界面的更改等操作,只需要将回调的结果保存起来。
使用results的示例如下:
- (void) onResults:(NSArray ) results{
NSMutableString result = [[NSMutableString alloc] init];
NSDictionary dic = [results objectAtIndex:0];
for (NSString key in dic){
Declared In
IFlySpeechRecognizerDelegate.h
#onVolumeChanged:
音量变化回调
在录音过程中,回调音频的音量。
- (void)onVolumeChanged:(int)*volume
Parameters
volume | -[out] 音量,范围从0-30 |
---|---|
Declared In
IFlySpeechRecognizerDelegate.h
#Declared In
IFlySpeechRecognizerDelegate.h
#onBeginOfSpeech
开始录音回调
当调用了startListening函数之后,如果没有发生错误则会回调此函数。
如果发生错误则回调onCompleted:函数
- (void)onBeginOfSpeech
Declared In
IFlySpeechRecognizerDelegate.h
#onEndOfSpeech
停止录音回调
当调用了stopListening函数或者引擎内部自动检测到断点,如果没有发生错误则回调此函数。
如果发生错误则回调onCompleted:函数
- (void)onEndOfSpeech
Declared In
IFlySpeechRecognizerDelegate.h
#onCancel
取消识别回调
当调用了cancel函数之后,会回调此函数,在调用了cancel函数和回调onCompleted之前会有一个
短暂时间,您可以在此函数中实现对这段时间的界面显示。
- (void)onCancel
Declared In
IFlySpeechRecognizerDelegate.h
#getAudioKey:
返回音频Key
- (void)getAudioKey:(NSString *)*key
Parameters
key | 音频Key |
---|---|
Declared In
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 | 事件数据 |
Declared In
IFlySpeechRecognizerDelegate.h