为什么80%的码农都做不了架构师?>>>   

一.基本常识

TTS(Text To Speech),语音合成手艺,是指把原本的文本信息转换成能够发音的语音旌旗灯号,在GPS导航等需要人机交互斗劲多的场所经常会用到。 iPhone系统自己没有供给TTS引擎,可是可以使用外部数据的体例使iPhone具有TTS功能。

二.具体介绍

今朝找到两种可以在iPhone上免费使用TTS的体例,一种是使用Acapela为iPhone开发的工具包,另一种是使用Google Translate的TTS接口。

以下介绍Google Translate的TTS接口:

获取音频并保存起来:

NSString *urlString = [@"http://translate.google.com/translate_tts?tl=en&q=" stringByAppendingString:@"I+am+techcrunch"];
NSURL *url = [[NSURL alloc] initWithString:[urlString stringByReplacingOccurrencesOfString:@" " withString:@"+"]];
//获得返回的mp3文件,格式为NSdata
NSData *voiceData = [[NSData alloc] initWithContentsOfURL:url];
[NSThread sleepForTimeInterval:3.0];//等待3秒获取google词库的发音数据
if(voiceData)
{NSLog(@"已经1次性获取到voice");
}
else
{int k=0;while(k<10&&!voiceData)//若voiceData为空,则继续获取voiceData5次,防止单词没有读音{NSString *urlString = [@"http://translate.google.com/translate_tts?tl=en&q=" stringByAppendingString:@"I+love+techcrunch "];NSURL *url = [[NSURL alloc] initWithString:[urlString stringByReplacingOccurrencesOfString:@" " withString:@"+"]];//获得返回的mp3文件,格式为NSdatavoiceData = [[NSData alloc] initWithContentsOfURL:url];[NSThread sleepForTimeInterval:5.0];k++;}if(voiceData){NSLog(@"第%d次获取到voice",k+1);}
}
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"%@",documentsDirectory);
[voiceData writeToFile:[documentsDirectory stringByAppendingPathComponent:@"test2"] atomically:YES];
[voiceData release];

读取音频并播放:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* appFile =[documentsDirectory stringByAppendingPathComponent:@"test2"];NSURL* filePath = [NSURL fileURLWithPath:appFile isDirectory:NO];
_wordData = [NSData dataWithContentsOfURL:filePath];;//保证静音模式下也能播放
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *error = nil;
BOOL b = [audioSession setCategory:AVAudioSessionCategoryPlayback error:&error];
b = [audioSession setActive:YES error:&error];//播放
_avAudioPlayer = [[AVAudioPlayer alloc] initWithData:_wordData error:nil];
_avAudioPlayer.delegate = self;
_avAudioPlayer.volume = 1.0f;
[_avAudioPlayer prepareToPlay];//分配播放所需的资源,并将其加入内部播放队列
[_avAudioPlayer play];

转载于:https://my.oschina.net/anyson/blog/112131

TTS入门--ios相关推荐

  1. Objective-C入门IOS语法

    Objective-C入门IOS语法 文章目录 Objective-C入门IOS语法 .h 声明文件 .m 实现文件 语法 NSString NSMutableNString NSDictionary ...

  2. swiftUI系列-我的个人side project开始,19年入门iOS开发

    swiftUI系列-我的个人side project开始,19年入门iOS开发 我为什么要搞side project 打工是挣钱的最佳途径,但是只是存粹的上班挣钱来说,一是难以获得成就感(毕竟面试造火 ...

  3. 基于ROS2和科大讯飞的文字转语音TTS入门教程

    基于ROS2和科大讯飞的语音转文字入门教程 基于ROS2和科大讯飞的文字转语音TTS入门教程 1.环境搭建 2.创建工程 3.编译和执行 基于ROS2和科大讯飞的文字转语音TTS入门教程 本文将展示, ...

  4. 入门IOS客户端开发(一)

    前言:新知识学起来 1.首先硬件,没有mac只有ipad 用iPad能做iOS APP开发吗? 总结:可选kodika\ codea Swift\ Playgrounds 2.选一个免费的ipad开发 ...

  5. 从Samples中入门IOS开发(六)------ Photo和Album浏览

    MyImagePicker展示了如何调用系统Photo和Album,并在自定义的UI中进行浏览,而这个也是很大众化的需求. 先看看这个例子的使用流程: 对于这个Sample,我主要关注两个关键点: 调 ...

  6. iOS开发--iOS通知中心扩展制作入门(iOS Extensions)

    个人笔记: 通知中心扩展,相当于一个特殊的独立的App存在.他和主App之间通讯可以通过OpenURL来实现.而在通知中心内部,像App一样,该咋样还是咋样(如异步网络请求, 自动布局等).  之所以 ...

  7. ios开发text kit_IOS开发入门之TextKit详解

    本文将带你了解IOS开发入门iOS 开发 富文本详解之TextKit详解,希望本文对大家学IOS有所帮助. textkit结构 textkit使用步骤 #Mark - 1. 自定义label  --c ...

  8. android 地球坐标 火星坐标系,IOS开发入门之iOS开发火星坐标系与地球坐标系解析...

    本文将带你了解IOS开发入门iOS开发火星坐标系与地球坐标系解析,希望本文对大家学IOS有所帮助. iOS开发火星坐标系与地球坐标系解析. 在开发过程中,遇到一个问题,安卓和iOS传同样的经纬度给后台 ...

  9. iOS 入门开发踩坑实录

    其实人生也没有什么道理可讲,但是我们不必丧气,还是要期待,人生有奇遇. 前言 苹果开发者:iOS Developer 最近因为工作需要要开始搞iOS了,简单记录下我收集和学习的过程. 学习资料准备 组 ...

最新文章

  1. C语言getch()函数学习
  2. 北斗导航 | PPP-RTK技术研究进展与试验验证(第十一届中国卫星导航年会报告)
  3. oracle ebs技术开发,Oracle EBS应用架构技术方案.pdf
  4. php枚举mysql,小技巧:取得MYSQL中ENUM(枚举)列的全部可能值。-PHP教程,PHP应用...
  5. H5 输入框text和number切换
  6. pda连接电脑无法存取文件_手机无法连接电脑怎办
  7. MySQL之创建表以及数据库增删改操作
  8. web使用js调用摄像头扫码、拍照、录像
  9. UDP中sendto()和recvfrom()两个函数的使用
  10. 购买一台服务器安装 青龙面版 撸京豆 ~超详细~
  11. 计算机保研面试中,都有哪些令人窒息的问题?
  12. 【传感器大赏】80cm红外距离传感器
  13. 零基础学编程的我的心路历程
  14. Kenneth Lane Thompson
  15. 阿里天池大赛实战记录之菜鸟-需求预测与分仓规划 1
  16. 2020 全国大学生数学建模竞赛C题思路+代码
  17. 什么是软考?计算机专业有没有必要考?
  18. F5(负载均衡)使用配置文档
  19. 【Web基础】用户注册登录案例
  20. 华为畅享二十Android是,华为畅享20 Pro智慧护眼怎么样?华为畅享20 Pro智慧护眼详解...

热门文章

  1. Codewar-006: A disguised sequence (I)
  2. 计算机常见故障排除 2017,Windows的十大常见故障和解决方法
  3. Photoshop-字体应用
  4. 单片机交通灯c语言实验报告,单片机交通灯实验报告
  5. 飞机大战python小游戏
  6. Appium-desktop的下载安装
  7. 关于485收数据的问题
  8. 数值法求解微分博弈问题(〇)——定义
  9. IDEA使用Maven
  10. 线性回归一些基本术语