美文网首页
文本转语音

文本转语音

作者: smirkk | 来源:发表于2016-07-15 14:51 被阅读31次

语音合成技术是iOS7推出的,可以实现无网络语音功能,支持多种语音。
1,导入AVFoundation.framework框架,在对应的文件中导入头文件#import <AVFoundation/AVSpeechSynthesis.h>
2,定义一个成员变量用来记录AVSpeechSynthesizer语音合成器
3,定义语音对象AVSpeechSynthesisVoice指定说话的语言
4,实例化发声对象 AVSpeechUtterance,指定要朗读的内容
5,指定语音,和朗诵速度 
6,启动语音

Demo


@interface KJSpeechSynthesizer : NSObject

+ (instancetype)sharedSpeechSynthesizer;

- (void)speakString:(NSString *)string;

- (void)stopSpeak;

@end

#import "KJSpeechSynthesizer.h"

@interface KJSpeechSynthesizer () <AVSpeechSynthesizerDelegate>

@property (nonatomic, strong, readwrite) AVSpeechSynthesizer *speechSynthesizer;

@end

@implementation KJSpeechSynthesizer

+ (instancetype)sharedSpeechSynthesizer
{
    static id sharedInstance = nil;
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[KJSpeechSynthesizer alloc] init];
    });
    return sharedInstance;
}

- (instancetype)init
{
    if (self = [super init])
    {
        [self buildSpeechSynthesizer];
    }
    return self;
}

- (void)buildSpeechSynthesizer
{
    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0)
    {
        return;
    }
    
    self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
    [self.speechSynthesizer setDelegate:self];
}
   // zh_CN 中文
   // en-US 英文
- (void)speakString:(NSString *)string
{
    if (self.speechSynthesizer)
    {
        AVSpeechUtterance *aUtterance = [AVSpeechUtterance speechUtteranceWithString:string];
        AVSpeechSynthesisVoice *voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];
        //设置语速 
       aUtterance.rate = 0.1
        [aUtterance setVoice:voice];
        
        if ([self.speechSynthesizer isSpeaking])
        {
            [self.speechSynthesizer stopSpeakingAtBoundary:AVSpeechBoundaryWord];
        }
        
        [self.speechSynthesizer speakUtterance:aUtterance];
    }
}

- (void)stopSpeak
{
    if (self.speechSynthesizer)
    {
        [self.speechSynthesizer stopSpeakingAtBoundary:AVSpeechBoundaryImmediate];
    }
}

相关文章

  • TTS离线语音合成的叨逼叨及解决方案

    概念 TTS即TextToSpeech,文本转语言,也就是所谓的语音合成技术。TTS技术对文本文件进行实时转换,转...

  • 阅读“阿里智能语音交互文档”

    ASR :语音识别服务,提供语音转文本服务。 TTS :文本转语音服务,提供将文本转为普通话语音的语音合成功能。 ...

  • 文字转化为语音Android中TextToSpeech类的简单使

    TTS(从文本到语音(TextToSpeech)) TTS是Text To Speech的缩写,即“从文本到语音”...

  • 01. NLP定义及歧义性

    1. NLP是什么? NLP = NLU+NLG NLU:语音/文本->意思 NLG:意思->语音/文本 NLU:...

  • 文本转语音

    工程建好后首先把AVFoundation.framework 加入到工程 AVSpeechSynthesizer ...

  • 文本转语音

    语音合成技术是iOS7推出的,可以实现无网络语音功能,支持多种语音。1,导入AVFoundation.framew...

  • 文本转语音

    在Mac上使用终端命名将一个文本转换为音频文件来自: http://25.io/toau/

  • 文本语音播报

    不用讯飞语音的原因就是离线语音有点贵。如果感觉下面方法不够优雅,并且就播放几个固定的语音那就可以使用系统播放音频文...

  • NLP

    本地搜索 文本匹配, 与 文本 转化为 声音 匹配。 与 语音识别翻译 ML:搜索识别, 语音识别,文字识别,图像...

  • js读取文本内容通过语音的方式读出来

    js读取文本内容通过语音的方式读出来 获取文本内容,语音播放,直接添加以下js即可

网友评论

      本文标题:文本转语音

      本文链接:https://www.haomeiwen.com/subject/xcuyjttx.html