TTS入门--ios
为什么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相关推荐
- Objective-C入门IOS语法
Objective-C入门IOS语法 文章目录 Objective-C入门IOS语法 .h 声明文件 .m 实现文件 语法 NSString NSMutableNString NSDictionary ...
- swiftUI系列-我的个人side project开始,19年入门iOS开发
swiftUI系列-我的个人side project开始,19年入门iOS开发 我为什么要搞side project 打工是挣钱的最佳途径,但是只是存粹的上班挣钱来说,一是难以获得成就感(毕竟面试造火 ...
- 基于ROS2和科大讯飞的文字转语音TTS入门教程
基于ROS2和科大讯飞的语音转文字入门教程 基于ROS2和科大讯飞的文字转语音TTS入门教程 1.环境搭建 2.创建工程 3.编译和执行 基于ROS2和科大讯飞的文字转语音TTS入门教程 本文将展示, ...
- 入门IOS客户端开发(一)
前言:新知识学起来 1.首先硬件,没有mac只有ipad 用iPad能做iOS APP开发吗? 总结:可选kodika\ codea Swift\ Playgrounds 2.选一个免费的ipad开发 ...
- 从Samples中入门IOS开发(六)------ Photo和Album浏览
MyImagePicker展示了如何调用系统Photo和Album,并在自定义的UI中进行浏览,而这个也是很大众化的需求. 先看看这个例子的使用流程: 对于这个Sample,我主要关注两个关键点: 调 ...
- iOS开发--iOS通知中心扩展制作入门(iOS Extensions)
个人笔记: 通知中心扩展,相当于一个特殊的独立的App存在.他和主App之间通讯可以通过OpenURL来实现.而在通知中心内部,像App一样,该咋样还是咋样(如异步网络请求, 自动布局等). 之所以 ...
- ios开发text kit_IOS开发入门之TextKit详解
本文将带你了解IOS开发入门iOS 开发 富文本详解之TextKit详解,希望本文对大家学IOS有所帮助. textkit结构 textkit使用步骤 #Mark - 1. 自定义label --c ...
- android 地球坐标 火星坐标系,IOS开发入门之iOS开发火星坐标系与地球坐标系解析...
本文将带你了解IOS开发入门iOS开发火星坐标系与地球坐标系解析,希望本文对大家学IOS有所帮助. iOS开发火星坐标系与地球坐标系解析. 在开发过程中,遇到一个问题,安卓和iOS传同样的经纬度给后台 ...
- iOS 入门开发踩坑实录
其实人生也没有什么道理可讲,但是我们不必丧气,还是要期待,人生有奇遇. 前言 苹果开发者:iOS Developer 最近因为工作需要要开始搞iOS了,简单记录下我收集和学习的过程. 学习资料准备 组 ...
最新文章
- C语言getch()函数学习
- 北斗导航 | PPP-RTK技术研究进展与试验验证(第十一届中国卫星导航年会报告)
- oracle ebs技术开发,Oracle EBS应用架构技术方案.pdf
- php枚举mysql,小技巧:取得MYSQL中ENUM(枚举)列的全部可能值。-PHP教程,PHP应用...
- H5 输入框text和number切换
- pda连接电脑无法存取文件_手机无法连接电脑怎办
- MySQL之创建表以及数据库增删改操作
- web使用js调用摄像头扫码、拍照、录像
- UDP中sendto()和recvfrom()两个函数的使用
- 购买一台服务器安装 青龙面版 撸京豆 ~超详细~
- 计算机保研面试中,都有哪些令人窒息的问题?
- 【传感器大赏】80cm红外距离传感器
- 零基础学编程的我的心路历程
- Kenneth Lane Thompson
- 阿里天池大赛实战记录之菜鸟-需求预测与分仓规划 1
- 2020 全国大学生数学建模竞赛C题思路+代码
- 什么是软考?计算机专业有没有必要考?
- F5(负载均衡)使用配置文档
- 【Web基础】用户注册登录案例
- 华为畅享二十Android是,华为畅享20 Pro智慧护眼怎么样?华为畅享20 Pro智慧护眼详解...