• iOS-文本转语音


    - 文本转语音

    iOS提供了一个类AVSpeechSynthesizer来实现文本到语音的功能, 即读出文字

    直接上代码:

        AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc] init];
        
        NSArray *speechStrings = @[@"Hello AV Foundation. How are you?",
                                   @"我很好, 感谢!",
                                   @"Are you excited about the book?",
                                   @"是的, 我非常喜欢这本书.",
                                   @"What's your favourite feature?",
                                   @"我都很喜欢呢!",
                                   @"It was great to speak with you!",
                                   @"我也是, 祝你愉快"];
        
        NSArray *voices = @[[AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"],
                            [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-cn"]];
        
        
        for (int i = 0; i < speechStrings.count; i ++) {
            
            AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:speechStrings[i]];
            
            utterance.voice              = voices[i % 2];   // 语言
            utterance.rate               = 0.4f;            // 播放语音的速度
            utterance.pitchMultiplier    = 0.8f;            // 音调
            utterance.postUtteranceDelay = 0.1f;            // 下一句间隔时间
            
            // 发音
            [synthesizer speakUtterance:utterance];
        }

    - 设置音频会话类型

    下面是常见音频会话分类

    分类 作用 是否允许混音 音频输入 音频输出
    Ambient 游戏, 效率应用程序 V   V
    Solo Ambient(默认) 游戏, 效率应用程序     V
    Playback 音频和视频播放器 可选   V
    Record 录音机, 音频捕捉   V  
    Play and Record VOIP, 语音聊天 可选 V V
    Audio Processing 离线会话和处理      
    Multi-Route 使用外部硬件的高级A/V应用程序   V V

    设置音频会话

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        AVAudioSession *session = [AVAudioSession sharedInstance];
    
        NSError *error;
        if (![session setCategory:AVAudioSessionCategoryPlayback error:&error]) {
            
            NSLog(@"Category Error: %@", [error localizedDescription]);
        }
        
        if (![session setActive:YES error:&error]) {
            
            NSLog(@"Activation Error: %@", [error localizedDescription]);
        }
        return YES;
    }
  • 相关阅读:
    [剑指offer] 赋值运算符重载
    [hihoCoder] 股票价格
    [LintCode] Kth Smallest Number in Sorted Matrix
    [LeetCode] Subarray Sum Equals K | 前缀和+哈希表
    [LeetCode] Add and Search Word
    [LeetCode] Implement Trie
    Tableau基础练习(三)
    Tableau基础练习(二)
    Tableau基础练习(一)
    SpringMVC用户请求下载文件
  • 原文地址:https://www.cnblogs.com/zhouxihi/p/7384886.html
Copyright © 2020-2023  润新知