语音识别完成诗句的查询功能,iOS AVSpeechSynthesis语音输出结果的诗歌APP

Posted lym_ay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语音识别完成诗句的查询功能,iOS AVSpeechSynthesis语音输出结果的诗歌APP相关的知识,希望对你有一定的参考价值。

前言

当前的APP的查询都是使用手动输入,不仅效率低,而且查询的语句的限制比较大,不能够方便的扩展。 如果能方便的扩展查询语句,那么APP的使用就会有很大的灵活性。可以设计各种问句和语句,可以方便的和用户进行交互。在这里使用了olami平台提供的语音平台接口,很方便的实现了查询语句的扩展,而且可以返回需要的结果。同时,Olami平台也提供了完整的语音识别功能,再结合ios 提供的AVSpeechSynthesis接口,就可以实现一套类似Siri的智能语音查询诗句的APP

APP功能介绍

这是一个查询《唐诗三百首》、《宋词三百首》、《元曲三百首》的诗歌学习APP,可以查询名字查询诗歌,可以通过诗人查询诗歌,可以通过诗词查询是哪一首,可以查询唐代有哪些诗人,这些诗人的代表作是什么。并通过语音读出来 
通过诗人查询代表作,点击可以显示诗歌 
技术分享

通过诗歌名称查询 
技术分享

通过诗句查询诗歌 
技术分享

通过诗句查询诗人 
技术分享

功能的实现

语音识别和语义理解都是通过Olami平台来实现的。这个需要去Olami平台进行注册,然后就可以免费试用了。官网的地址https://olami.ai,网站上有丰富的教学资源具体的使用可以查看相关的文档,也可以查询我的前几篇博客 
定义的语句大部分都是查询的:例如 
落花时节又逢君出自哪首诗 
你会背李白的诗吗 
元代的诗人有哪些 
唐朝有哪些诗人 
唐朝诗人李白的主要作品有哪些 

李商隐的诗

语音的读取是使用了苹果的AVSpeechSynthesis库进行的。这个库的使用也很简单。这个库是在AVFoundation中

#import<AVFoundation/AVFoundation.h>

使用了两个类

AVSpeechSynthesizer
AVSpeechUtterance
AVSpeechSynthesizer *av= [[AVSpeechSynthesizer alloc]init];
av.delegate=self;//挂上代理
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"你好!"];//需要转换的文字
 utterance.rate=0.5;// 设置语速,范围0-1,注意0最慢,1最快;AVSpeechUtteranceMinimumSpeechRate最慢,AVSpeechUtteranceMaximumSpeechRate最快

 AVSpeechSynthesisVoice*voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-TW"];//设置发音,这是中文普通话

 utterance.voice= voice;

[av speakUtterance:utterance];//开始

AVSpeechSynthesizer定义了一些回调代理,可以侦测一些状态

- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didStartSpeechUtterance:(AVSpeechUtterance*)utterance{

    NSLog(@"---开始播放");

}

- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance*)utterance{

    NSLog(@"---完成播放");

}

- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didPauseSpeechUtterance:(AVSpeechUtterance*)utterance{

    NSLog(@"---播放中止");

}

- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didContinueSpeechUtterance:(AVSpeechUtterance*)utterance{

    NSLog(@"---恢复播放");

}

- (void)speechSynthesizer:(AVSpeechSynthesizer*)synthesizer didCancelSpeechUtterance:(AVSpeechUtterance*)utterance{

    NSLog(@"---播放取消");

}













以上是关于语音识别完成诗句的查询功能,iOS AVSpeechSynthesis语音输出结果的诗歌APP的主要内容,如果未能解决你的问题,请参考以下文章

12-11锦上添花Flutter AI只能语音搜索功能实现

如何触发 iOS 应用开始离线识别语音命令?

iOS:百度长语音识别具体的封装:识别播放进度刷新

IBM Worklight for iOS 中的语音识别

一键完成图片到文字识别,省下打字时间

讯飞科技自定义语音识别相关功能关键词