使用AVSpeechSynthesizer朗读文字
来源:互联网 发布:mac docker 镜像位置 编辑:程序博客网 时间:2024/06/02 22:44
使用苹果提供的语音合成器,可以通过简单的代码做到朗读文本。
#import <AVFoundation/AVFoundation.h> // 创建嗓音,指定嗓音不存在则返回nilAVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"]; // 创建语音合成器AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc] init]; // 实例化发声的对象AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"跑步完成"];utterance.voice = voice;utterance.rate = 0.5;<span style="white-space:pre"></span>// 语速 // 朗读的内容[synthesizer speakUtterance:utterance];
所有的嗓音如下:
"[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" )
在xCode7,iOS9,iPhone5的环境下,以台湾音为例
<pre name="code" class="objc">AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"<span style="font-family: Arial, Helvetica, sans-serif;">zh-TW</span><span style="font-family: Arial, Helvetica, sans-serif;">"];</span>
这条语句会产生如下警告:
|AXSpeechAssetDownloader|error| ASAssetQuery error fetching results (for com.apple.MobileAsset.MacinTalkVoiceAssets) Error Domain=ASError Code=21 "Unable to copy asset information" UserInfo={NSDescription=Unable to copy asset information}
在stackoverflow中查找相关问题,只能得到部分解决方法:
进入iPhone的 设置 > 通用 > 辅助功能 > 语音,开启“朗读所选项”,并在“嗓音”中选择“中文(台湾)”
但是,对于将要申请上架的app,这并不是一个好的解决方法,除非你的app能够自动下载该嗓音资源。
结论:暂时无法处理此警告,如果哪位前辈知道解决方法,请告诉我,谢谢。
1 0
- 使用AVSpeechSynthesizer朗读文字
- 使用TextToSpeech朗读文字
- 文字转语音AVSpeechSynthesizer
- 在VB中使用文字朗读引擎(TTS)技术
- 在VB中使用文字朗读引擎(TTS)技术
- 使用讯飞语音实现语音识别,朗读文字
- c#朗读文字
- iOS AVSpeechSynthesizer进行文字转语音
- TTS实现文字语音朗读
- TextToSpeech自动朗读使用
- IOS开发笔记之文字转语音AVSpeechSynthesizer用法
- AVSpeechSynthesizer文字转语音播放(需真机)详解
- 实现播报汉语文字,用系统AVSpeechSynthesizer类来实现
- iOS 语音播放文字内容--制作简易听书软件(AVSpeechSynthesizer)
- VC用TTS实现文字语音朗读
- VC用TTS实现文字语音朗读
- iOS开发之语音朗读文字
- 命令行控制ubuntu朗读输入文字
- [刷题]Sort Letters by Case
- Linux电源管理(9)_wakelocks
- Doze Mode
- swift的可选值(optional)
- Java回调
- 使用AVSpeechSynthesizer朗读文字
- Ubuntu Server下Qt的MySql驱动问题
- 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务
- 数据挖掘(1):关联规则挖掘基本概念与Aprior算法
- 【译】Swift 面试题及其答案
- foreach循环
- -fembed-bitcode is not supported on versions of iOS prior to 6.0
- Linux电源管理(10)_autosleep
- AsyncTask