·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> 讯飞语音接口使用

讯飞语音接口使用

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

讯飞语音我就不介绍了,说实话,昨晚之前我还不知道这个东西.因为自己现在只用到了语音合成,即将一段文字转化为语音,所以在此先将语音合成的方法列出来.

 

首先添加框架

iflyMSC.framework,

libz.dylib/libz.tbd(Xcode7.x)

AVFoundation.framework

SystemConfiguration.framework

Foundation.framework

CoreTelephoney.framework

AudioToolbox.framework

UIKit.framework

CoreLocation.framework

AddressBook.framework

QuartzCore.framework

 

CoreGraphics.framework

 

说实话,框架好多,并且大多数都是目前用不到,不过考虑到以后这篇文章还会继续增加,所以就一次贴出来吧.

 

    //设置sdk的log等级,log保存在下面设置的工作路径中
    [IFlySetting setLogFile:LVL_ALL];
    //打开输出在console的log开关
    [IFlySetting showLogcat:YES];
    //设置sdk的工作路径
    NSString *paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    [IFlySetting setLogFilePath:paths];
    //创建语音配置,appid必须要传入,仅执行一次则可
    NSString *initString=[[NSString alloc]initWithFormat:@"appid=%@",APPID_VALUE];
    //所有服务启动前,需要确保执行createUtility
    [IFlySpeechUtility createUtility:initString];

 

 

语音合成

 

@interface ViewController ()<IFlySpeechSynthesizerDelegate>
{
    //需要实现IFlySpeechSynthesizerDelegate合成会话的服务代理
    IFlySpeechSynthesizer *_iFlySpeechSynthesizer;
}



- (IBAction)read:(UIButton *)sender { //1.创建合成对象 _iFlySpeechSynthesizer=[IFlySpeechSynthesizer sharedInstance]; _iFlySpeechSynthesizer.delegate=self; //2.设置合成参数 //设置在线工作方式 [_iFlySpeechSynthesizer setParameter:[IFlySpeechConstant TYPE_CLOUD] forKey:[IFlySpeechConstant ENGINE_TYPE]]; //音量,取值范围 0~100 [_iFlySpeechSynthesizer setParameter:@"50" forKey:[IFlySpeechConstant VOLUME]]; //说话语速 [_iFlySpeechSynthesizer setParameter:@"42" forKey:[IFlySpeechConstant SPEED]]; //发音人,默认为”xiaoyan”,可以设置的参数列表可参考“合成发音人列表” [_iFlySpeechSynthesizer setParameter:@"xiaoyan" forKey:[IFlySpeechConstant VOICE_NAME]]; //保存合成文件名,如不再需要,设置设置为nil或者为空表示取消,默认目录位于 library/cache下 [_iFlySpeechSynthesizer setParameter:@"tts.pcm" forKey:[IFlySpeechConstant TTS_AUDIO_PATH]]; //3.启动合成会话 [_iFlySpeechSynthesizer startSpeaking:_world.text]; }

 

 

 

IFlySpeechSynthesizerDelegate协议方法

 

//结束代理
-(void)onCompleted:(IFlySpeechError *)error
{
    NSLog(@"结束代理");
}
//合成开始
-(void)onSpeakBegin
{
    NSLog(@"合成开始");
}
//合成缓冲进度
-(void)onBufferPRogress:(int)progress message:(NSString *)msg
{
    NSLog(@"合成缓冲进度");
}
//合成播放进度
-(void)onSpeakProgress:(int)progress
{
    NSLog(@"合成缓冲进度");
}

 

PS:说实话,感觉就像是从帮助文档上照抄一样