• iOS三句话实现文本转语音:AVSpeechSynthesizer


    一、介绍

          从iOS5开始,iOS系统已经在siri上集成了语音合成的功能,但是是私有API。但是在iOS7,新增了一个简单的API----AVSpeechSynthesizer来做这件事情。

    二、案例

    将AVFoundation.framework导入到你的工程里面;

    #import "SpeechSynthesisViewController.h"
    #import <AVFoundation/AVFoundation.h>
    @property (nonatomic, strong) AVSpeechSynthesizer *synthesizer;
    
    @implementation SpeechSynthesisViewController
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.synthesizer = [[AVSpeechSynthesizer alloc] init];
    }
    
    - (IBAction)say 
    {
    
        AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:"iOS7新特性"];
        //设置语言类别(不能被识别,返回值为nil)
        AVSpeechSynthesisVoice *voiceType = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];
        utterance.voice = voiceType;
        //设置语速快慢
        utterance.rate *= 0.5;
       //语音合成器会生成音频
        [self.synthesizer speakUtterance:utterance];
    
    }
    

    语言类别
    iOS7包含了一组可以用来合成的声音的嗓音,你可以自定义多种嗓音来合成。 
    "[AVSpeechSynthesisVoice 0x978a0b0] Language: th-TH", 
    "[AVSpeechSynthesisVoice 0x977a450] Language: pt-BR", 
    "[AVSpeechSynthesisVoice 0x977a480] Language: sk-SK",
    "[AVSpeechSynthesisVoice 0x978ad50] Language: fr-CA", 
    "[AVSpeechSynthesisVoice 0x978ada0] Language: ro-RO", 
    "[AVSpeechSynthesisVoice 0x97823f0] Language: no-NO",
    "[AVSpeechSynthesisVoice 0x978e7b0] Language: fi-FI", 
    "[AVSpeechSynthesisVoice 0x978af50] Language: pl-PL", 
    "[AVSpeechSynthesisVoice 0x978afa0] Language: de-DE", 
    "[AVSpeechSynthesisVoice 0x978e390] Language: nl-NL", 
    "[AVSpeechSynthesisVoice 0x978b030] Language: id-ID", 
    "[AVSpeechSynthesisVoice 0x978b080] Language: tr-TR", 
    "[AVSpeechSynthesisVoice 0x978b0d0] Language: it-IT", 
    "[AVSpeechSynthesisVoice 0x978b120] Language: pt-PT",
    "[AVSpeechSynthesisVoice 0x978b170] Language: fr-FR",
    "[AVSpeechSynthesisVoice 0x978b1c0] Language: ru-RU", 
    "[AVSpeechSynthesisVoice 0x978b210]Language: es-MX", 
    "[AVSpeechSynthesisVoice 0x978b2d0] Language: zh-HK",
    "[AVSpeechSynthesisVoice 0x978b320] Language: sv-SE", 
    "[AVSpeechSynthesisVoice 0x978b010] Language: hu-HU",
    "[AVSpeechSynthesisVoice 0x978b440] Language: zh-TW",
    "[AVSpeechSynthesisVoice 0x978b490] Language: es-ES",
    "[AVSpeechSynthesisVoice 0x978b4e0] Language: zh-CN", 
    "[AVSpeechSynthesisVoice 0x978b530] Language: nl-BE", 
    "[AVSpeechSynthesisVoice 0x978b580] Language: en-GB",
    "[AVSpeechSynthesisVoice 0x978b5d0] Language: ar-SA", 
    "[AVSpeechSynthesisVoice 0x978b620] Language: ko-KR",
    "[AVSpeechSynthesisVoice 0x978b670] Language: cs-CZ",
    "[AVSpeechSynthesisVoice 0x978b6c0] Language: en-ZA", 
    "[AVSpeechSynthesisVoice 0x978aed0] Language: en-AU",
    "[AVSpeechSynthesisVoice 0x978af20] Language: da-DK",
    "[AVSpeechSynthesisVoice 0x978b810] Language: en-US",
    "[AVSpeechSynthesisVoice 0x978b860] Language: en-IE",
    "[AVSpeechSynthesisVoice 0x978b8b0] Language: hi-IN", 
    "[AVSpeechSynthesisVoice 0x978b900] Language: el-GR",
    "[AVSpeechSynthesisVoice 0x978b950] Language: ja-JP" 

    三、总结

     在iOS7,语音合成器非常简单,多语言方便使用,可以提高应用的访问性,而不用时刻用你的手和眼来操作应用。 

  • 相关阅读:
    错误error: Exception at 0x613baa14, code: 0xc0000005: read access violation at: 0x0, flags=0x0 (first chance)的解决办法
    android项目在eclipse下编译运行的问题
    关于Eigen库在Visual Studio2013中传参对齐报错问题
    实时控制软件设计大作业总结
    实时软件控制成员任务分配进度表
    实时控制软件设计第三次作业
    实时控制软件设计第二次作业
    实时软件控制设计第一次作业
    《构建之法:现代软件工程》第一章读书笔记
    组员名单
  • 原文地址:https://www.cnblogs.com/jiangzzz/p/5489084.html
Copyright © 2020-2023  润新知