科大讯飞(2) 语音合成(文字转换成语音)

时间:2024-02-24 21:17:48

科大讯飞开放平台、SDK下载、添加静态库、初始化见UI进阶 科大讯飞(1) 语音听写(语音转换成文字)

实现语音合成

功能实现步骤:

  • 导入头文件
  • 创建文字识别对象
  • 指定文字识别后的回调代理对象
  • 开启文字识别功能
  • 在回调方法中处理文字识别后返回的对象

文字合成中的参数:

 

 

 

 

 

 

 

 

 

 

 

代码展示:

 1 //文字识别的回调方法接口
 2 #import <iflyMSC/IFlySpeechSynthesizerDelegate.h>
 3 
 4 //文字识别对象
 5 #import <iflyMSC/IFlySpeechSynthesizer.h>
 6 
 7 //科大讯飞语音框架定义的常量
 8 #import <iflyMSC/IFlySpeechConstant.h>
 9 
10 // 遵循协议
11 @interface SecondViewController ()<IFlySpeechSynthesizerDelegate>
12 /// 文字显示
13 @property (weak, nonatomic) IBOutlet UITextView *wordTextView;
14 
15 /// 文字识别
16 @property (nonatomic, strong) IFlySpeechSynthesizer *synthesizer;
17 @end
18 
19 @implementation SecondViewController
20 
21 - (void)viewDidLoad {
22     [super viewDidLoad];
23     self.synthesizer = [IFlySpeechSynthesizer sharedInstance];
24     self.synthesizer.delegate = self;
25     
26     //设置文字识别对象的关键属性
27     //设置语音合成的参数
28     //语速,取值范围 0~100
29     [self.synthesizer setParameter:@"50" forKey:[IFlySpeechConstant SPEED]];
30     //音量;取值范围 0~100
31     [self.synthesizer setParameter:@"50" forKey:[IFlySpeechConstant VOLUME]];
32     //发音人,默认为”xiaoyan”;可以设置的参数列表可参考个性化发音人列表
33     [self.synthesizer setParameter:@"XIAOYAN" forKey:[IFlySpeechConstant VOICE_NAME]];
34     //音频采样率,目前支持的采样率有 16000 和 8000
35     [self.synthesizer setParameter:@"8000" forKey:[IFlySpeechConstant SAMPLE_RATE]];
36     //asr_audio_path保存录音文件路径,如不再需要,设置value为nil表示取消,默认目录是documents
37     [self.synthesizer setParameter:@"tts.pcm" forKey:[IFlySpeechConstant TTS_AUDIO_PATH]];
38   
39     [self.synthesizer setParameter:@"custom" forKey:[IFlySpeechConstant PARAMS]];
40 
41 }
42 #pragma mark - 文字转换成语音
43 - (IBAction)recognize:(UIButton *)sender {
44     // 启动合成会话
45     [self.synthesizer startSpeaking:self.wordTextView.text];
46     
47 }
48 
49 
50 /**
51  *  结束回调
52  *  当整个合成结束之后会回调此函数
53  *
54  *  @param error 错误码
55  */
56 - (void) onCompleted:(IFlySpeechError*) error {
57     
58 }
59 
60 @end