IOS开发笔记之文字转语音AVSpeechSynthesizer用法

最近在弄文字转语音的东西,IOS6以前的话基本是用私用api或者请求第三方的语音包,IOS7之后有了AVSpeechSynthesizer可以使用,记录下。使用前先导入#import 下面是我自己用的方法/** * 调用系统朗读text * * @param text 需要朗读的文字 */- (void)readText:(NSString *)text{
摘要由CSDN通过智能技术生成

最近在弄文字转语音的东西,IOS6以前的话基本是用私用api或者请求第三方的语音包,IOS7之后有了AVSpeechSynthesizer可以使用,记录下。

使用前先导入

#import <AVFoundation/AVFoundation.h>

下面是我自己用的方法

/**
 *  调用系统朗读text
 *
 *  @param text 需要朗读的文字
 */
- (void)readText:(NSString *)text{
    
    if( ([[[UIDevice currentDevice] systemVersion] doubleValue] < 7.0)){
        return;
    }
    
    
    _AVsynthesize = [[AVSpeechSynthesizer alloc]init];
    _AVsynthesize.delegate = self;
    AVSpeechUtterance * utt = [[AVSpeechUtterance alloc] initWithString:text];
    AVSpeechSynthesisVoice * type = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];
    utt.voice = type;
    utt.rate = 0.1;
    
    [_AVsynthesize speakUtterance:utt];
    MYLog(@"read.isSpeaking = %hhd",_AVsynthesize.isSpeaking);
    
    /*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS语音通话可以通过苹果提供的AVFoundation框架来实现,具体步骤如下: 1. 导入AVFoundation框架 在项目中导入AVFoundation框架,这个框架提供了音频和视频播放、录制、编辑等功能。 2. 创建AVAudioSession会话 AVAudioSession提供了一个音频会话来管理应用程序的音频功能,包括设置音量、启动和停止录音、控制多路音频等。 ```swift let session = AVAudioSession.sharedInstance() do { try session.setCategory(.playAndRecord, mode: .default) try session.setActive(true) } catch { print(error.localizedDescription) } ``` 这里我们设置会话的类别为playAndRecord,表示同时支持播放和录制。 3. 创建AVAudioEngine引擎 AVAudioEngine是一个强大的音频处理引擎,可以用它来处理音频数据。 ```swift let engine = AVAudioEngine() ``` 4. 创建AVAudioPlayerNode节点和AVAudioInputNode节点 AVAudioPlayerNode节点用于播放来自远程用户的音频数据,而AVAudioInputNode节点用于录制本地用户的音频数据。 ```swift let player = AVAudioPlayerNode() let input = engine.inputNode ``` 5. 连接输入和输出 将AVAudioInputNode节点和AVAudioPlayerNode节点连接起来,这样本地用户录制的音频数据就会被发送给远程用户,而远程用户的音频数据则会通过AVAudioPlayerNode节点播放出来。 ```swift engine.connect(input, to: player, format: input.outputFormat(forBus: 0)) ``` 6. 启动引擎 ```swift try? engine.start() ``` 7. 开始录制和播放 用户按下语音对讲按钮时,我们开始录制本地音频数据,并向远程用户发送数据。同时,我们也开始播放来自远程用户的音频数据。 ```swift // 开始录制 input.installTap(onBus: 0, bufferSize: 1024, format: input.outputFormat(forBus: 0)) { (buffer, time) in // 发送数据给远端用户 } // 开始播放 player.play() ``` 8. 停止录制和播放 用户松开语音对讲按钮时,我们停止录制本地音频数据,并停止向远程用户发送数据。同时,我们也停止播放来自远程用户的音频数据。 ```swift // 停止录制 input.removeTap(onBus: 0) // 停止播放 player.stop() ``` 以上就是使用AVFoundation框架实现iOS语音通话的基本步骤,具体实现还需要考虑音频编解码、网络传输等技术细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值