初识--AVSpeechSynthesizer
生活随笔
收集整理的這篇文章主要介紹了
初识--AVSpeechSynthesizer
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
什么是AVSpeechSynchronizer?
從IOS5開始,IOS系統(tǒng)已經(jīng)在siri上集成了語音合成的功能,但是是私有API。但是在IOS7,新增了一個簡單的API----AVSpeechSynthesizer來做這件事情。目前比較主流的語音識別和合成的工具“科大訊飛”很強(qiáng)大,使用起來也很簡單,當(dāng)然如果是簡單的“文本到語音”的功能,在iOS中已經(jīng)提供好了相關(guān)的API,開發(fā)者可以使用AV Foundation中的AVSpeechSynthesizer類來實現(xiàn)這個功能。
那我就直接上代碼嘍:
#import "ViewController.h" #import <AVFoundation/AVFoundation.h>@interface ViewController ()<AVSpeechSynthesizerDelegate>//AVSpeechSynthesizer代理//聲明AVSpeechSynthesizer屬性 @property (nonatomic, strong) AVSpeechSynthesizer *synthesizer;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.//創(chuàng)建一個AVSpeechSynthesizer對象self.synthesizer = [[AVSpeechSynthesizer alloc]init];//設(shè)置代理人為當(dāng)前控制器對象self.synthesizer.delegate = self;//創(chuàng)建AVSpeechUtterance對象(播放的語音內(nèi)容都是通過實例化AVSpeechUtterance而得到)AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"你好,就是愛你愛著你,你能把我咋地"];// 語速 0.0f~1.0futterance.rate = 0.5f;// 聲音的音調(diào) 0.5f~2.0futterance.pitchMultiplier = 0.8f;// 使播放下一句的時候有0.1秒的延遲utterance.postUtteranceDelay = 0.1f;//系統(tǒng)默認(rèn)是不支持中文的(下面是設(shè)置中文)utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];//國家語言//播放 [_synthesizer speakUtterance:utterance]; } //AVSpeechSynthesizer的代理方法 -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didStartSpeechUtterance:(AVSpeechUtterance *)utterance{NSLog(@"開始播放"); } -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didPauseSpeechUtterance:(AVSpeechUtterance *)utterance{NSLog(@"暫停播放"); } -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance{NSLog(@"結(jié)束播放"); } -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didCancelSpeechUtterance:(AVSpeechUtterance *)utterance{NSLog(@"退出播放狀態(tài)"); } -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didContinueSpeechUtterance:(AVSpeechUtterance *)utterance{NSLog(@"跳出播放狀態(tài)"); } -(void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer willSpeakRangeOfSpeechString:(NSRange)characterRange utterance:(AVSpeechUtterance *)utterance{NSLog(@"播放狀態(tài)時,當(dāng)前所播放的字符串范圍,及AVSpeechUtterance實例(可通過此方法監(jiān)聽當(dāng)前播放的字或者詞"); }@end?
轉(zhuǎn)載于:https://www.cnblogs.com/LzwBlog/p/5688641.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的初识--AVSpeechSynthesizer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向textarea元素输入限制长度的字符
- 下一篇: ACM-线段树