iOS快速入手语音识别、听写、评测、播报

引言

子弹短信,不仅支持语音输入、文本输入,同时还支持“语音输入、文字输出”。

前言

之前在讯飞人脸识别的基础上做了活体人脸识别,并在当时没有免费活体识别的大环境下,本着程序猿的互联网精神,在Git上第一个站出来开源出来,感谢大家的支持。

后来也一直打算拿出来讯飞的语音识别,做些事情方便大家,初衷是想做一款读书软件,后来拖延症晚期患者一直没上手。今年7月份偶然参加了一个活动,需要做一款APP参赛,后来决定做一个语音识别方面的,又重新找回讯飞语音识别,做了一个语音方面的APP。

赶巧制作过程中听闻锤子公司出了“子弹短信”,也是使用了语音识别的功能,想来后续会有很多同胞会应用到语音方面内容,故做完APP后,赶紧过来开源分享给大家。

正文

本次开源的语音识别是在讯飞语音的基础上,重新封装了语音评测、语音听写、语音朗读三个功能,集成更方便,使用更便捷。下面仍从集成和使用方面来讲解。

集成

集成可以参考讯飞语音识别官方集成API。同时在APP中需要首先初始化语音识别功能。

NSString*initString = [[NSStringalloc]initWithFormat:@"appid=%@",@"讯飞平台注册APPID"];

[IFlySpeechUtility createUtility:initString];

语音听写

语音听写功能用于识别输入语音,输出文字功能。

这里封装成了一个方法,通过Block回调识别结果resText和错误信息error。

/**

 语音听写

 @param callback 听写结果回调

 */

+ (void)xf_AudioRecognizerResult: (void(^)(NSString *resText,NSError *error))callback

语音评测

语音评测功能中,可以设置想要评测的内容,通过用户朗读内容,机器识别并对比评测,得到朗读评分。

这里把评测中的状态分了开始录音、录音音量、停止录音、取消录音、评测结果、评测失败 6种情况,在Block回调中可通过type获取状态,并进行判断。progress为各个状态情况下的数值,为0-100之间的有理数。resultMsg为评测结果、评测失败两种情况下返回的评测结果、失败内容。

/**

 语音测评

 @param text 评测内容

 @param callback 评测结果返回

 */

+ (void)xf_AudioEvaluationOfText: (NSString*)text callback:(void(^)(XF_Audio_Evaluation_Type type,float progress,NSString *resultMsg))callback;

语音合成

语音合成即语音播报,给出内容,由机器朗读内容。

Block返回内容里type分为合成进度、开始播放、播放进度、播放结束四种合成状态。progress为各个阶段的进度值。

以下为默认播报语音发音人的方法:

/**

 语音合成

 @param text 合成内容

 @param callback 回调结果

 */

+ (void)xf_AudioSynthesizeOfText: (NSString*)text callback:(void(^)(XF_Audio_Synthesize_Type type,NSInteger progress))callback;

以下为自定义语音发音人的语音合成调用方法

/**

 语音合成

 @param text 合成内容

 @param people 设置发音人

 @param callback 回调结果

 */

+ (void)xf_AudioSynthesizeOfText: (NSString*)text fromPeople:(NSString*)people callback:(void(^)(XF_Audio_Synthesize_Typetype,NSIntegerprogress))callback;

尾声

Demo的gitHub地址为:https://github.com/fuzheng0301/FZSpeak,如果能帮到大家,深感荣幸,感谢您的star。

你可能感兴趣的:(iOS快速入手语音识别、听写、评测、播报)