我使用的服务是:iOS离在线融合语音合成SDK
调用的接口是:BDSSpeechSynthesizer.h
参数设置情况:
///女声
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:
[NSNumber numberWithInt:BDS_SYNTHESIZER_SPEAKER_FEMALE]
forKey:BDS_SYNTHESIZER_PARAM_SPEAKER];
///音量 0 ~9
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInt:9] forKey:BDS_SYNTHESIZER_PARAM_VOLUME];
///语速 0 ~9
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInt:7] forKey:BDS_SYNTHESIZER_PARAM_SPEED];
///语调 0 ~9
[[BDSSpeechSynthesizer sharedInstance] setSynthParam: [NSNumber numberWithInt:5] forKey:BDS_SYNTHESIZER_PARAM_PITCH];
///mp3音质 压缩的16K
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:
[NSNumber numberWithInt: BDS_SYNTHESIZER_AUDIO_ENCODE_MP3_16K] forKey:BDS_SYNTHESIZER_PARAM_AUDIO_ENCODING ];
//播放等级
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInt:2] forKey:BDS_SYNTHESIZER_PARAM_ETTS_VOCODER_OPTIM_LEVEL];
/// 离线相关设置
NSString* offlineEngineSpeechData = [[NSBundle mainBundle] pathForResource:@"Chinese_Speech_Female" ofType:@"dat"];
NSString* offlineEngineTextData = [[NSBundle mainBundle] pathForResource:@"Chinese_Text" ofType:@"dat"];
NSString* offlineEngineEnglishSpeechData = [[NSBundle mainBundle] pathForResource:@"English_Speech_Female" ofType:@"dat"];
NSString* offlineEngineEnglishTextData = [[NSBundle mainBundle] pathForResource:@"English_Text" ofType:@"dat"];
// 设置线程,默认使用主线程
[[BDSSpeechSynthesizer sharedInstance] setSDKCallbackQueue:dispatch_queue_create("baiduVoiceQueue", DISPATCH_QUEUE_SERIAL)];
开发平台和机型:iOS 所有机型
SDK版本号:2.2.2
代码或日志截图(上传截图能帮助您更快解决问题):
[[BDSSpeechSynthesizer sharedInstance] setSDKCallbackQueue:dispatch_queue_create("baiduVoiceQueue", DISPATCH_QUEUE_SERIAL)];
复现步骤、现象及其他描述:
出现的问题是,推送消息用百度语音TTS播报,百度设置的线程是主线程串行,在调用时我也加了同步锁,可还是在消息频繁推送的情况下,上一条消息还没播报完就被下一条给盖过去了
Fabuinitial:
回复chenxiaoyu3:是同样的文字,在不同时间的请求下,合成的结果时常不一样
回复Fabuinitial:是否可以提供一下出问题的具体文本,我们排查一下原因。
chenxiaoyu3:
回复Fabuinitial:是同样的文字,在不同时间的请求下,合成的结果时常不一样?同样的文字有变化,还是说不同的文字,比如某个特定的句子,语速总是过快?
回复chenxiaoyu3:是同样的文字,在不同时间的请求下,合成的结果时常不一样
Fabuinitial:
回复chenxiaoyu3:
我们在播放推送传来的内容,调用百度语音合成,合成播放的语音偶尔会出现语速突然变慢,语调也发生变化,间断性的出现
回复Fabuinitial:是同样的文字,在不同时间的请求下,合成的结果时常不一样?同样的文字有变化,还是说不同的文字,比如某个特定的句子,语速总是过快?
chenxiaoyu3:
回复Fabuinitial:
1. 频繁调用开始合成接口,最终播放的顺序是应该由调用方执行控制。比如在第一个播报完成后再次调用第二次合成。
2. 还请描述一下具体的case
回复chenxiaoyu3:
我们在播放推送传来的内容,调用百度语音合成,合成播放的语音偶尔会出现语速突然变慢,语调也发生变化,间断性的出现
Fabuinitial:
回复chenxiaoyu3:
APP ID:9539034
首先感谢您为我的解答,但还是存在以下问题
1.我的问题应该是线程上的问题,虽然委托能实现控制播报,但是无法实现全部的顺序播报,在频繁次合成时,只有部分播报,对于iOS不知道这问题你们有没有测试过, 还是说能给我一个案例
2.百度语音合成iOS和andrio都出现语音速度的问题,对于字符偏长的字符播报速度会偏快,这是什么原因造成的
期待您的回复
回复Fabuinitial:
1. 频繁调用开始合成接口,最终播放的顺序是应该由调用方执行控制。比如在第一个播报完成后再次调用第二次合成。
2. 还请描述一下具体的case
回复chenxiaoyu3:
APP ID:9539034
首先感谢您为我的解答,但还是存在以下问题
1.我的问题应该是线程上的问题,虽然委托能实现控制播报,但是无法实现全部的顺序播报,在频繁次合成时,只有部分播报,对于iOS不知道这问题你们有没有测试过, 还是说能给我一个案例
2.百度语音合成iOS和andrio都出现语音速度的问题,对于字符偏长的字符播报速度会偏快,这是什么原因造成的
期待您的回复
chenxiaoyu3:
回复Fabuinitial:可以参考 合成委托的函数(
[[BDSSpeechSynthesizer sharedInstance] setSynthesizerDelegate:self];
)通过修改合成开始,合成结束等委托 进行播报顺序的控制
回复chenxiaoyu3:谢谢,我试试
Fabuinitial:
我使用的服务是:iOS离在线融合语音合成SDK
调用的接口是:BDSSpeechSynthesizer.h
参数设置情况:
///女声
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:
[NSNumber numberWithInt:BDS_SYNTHESIZER_SPEAKER_FEMALE]
forKey:BDS_SYNTHESIZER_PARAM_SPEAKER];
///音量 0 ~9
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInt:9] forKey:BDS_SYNTHESIZER_PARAM_VOLUME];
///语速 0 ~9
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInt:7] forKey:BDS_SYNTHESIZER_PARAM_SPEED];
///语调 0 ~9
[[BDSSpeechSynthesizer sharedInstance] setSynthParam: [NSNumber numberWithInt:5] forKey:BDS_SYNTHESIZER_PARAM_PITCH];
///mp3音质 压缩的16K
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:
[NSNumber numberWithInt: BDS_SYNTHESIZER_AUDIO_ENCODE_MP3_16K] forKey:BDS_SYNTHESIZER_PARAM_AUDIO_ENCODING ];
//播放等级
[[BDSSpeechSynthesizer sharedInstance] setSynthParam:[NSNumber numberWithInt:2] forKey:BDS_SYNTHESIZER_PARAM_ETTS_VOCODER_OPTIM_LEVEL];
/// 离线相关设置
NSString* offlineEngineSpeechData = [[NSBundle mainBundle] pathForResource:@"Chinese_Speech_Female" ofType:@"dat"];
NSString* offlineEngineTextData = [[NSBundle mainBundle] pathForResource:@"Chinese_Text" ofType:@"dat"];
NSString* offlineEngineEnglishSpeechData = [[NSBundle mainBundle] pathForResource:@"English_Speech_Female" ofType:@"dat"];
NSString* offlineEngineEnglishTextData = [[NSBundle mainBundle] pathForResource:@"English_Text" ofType:@"dat"];
// 设置线程,默认使用主线程
[[BDSSpeechSynthesizer sharedInstance] setSDKCallbackQueue:dispatch_queue_create("baiduVoiceQueue", DISPATCH_QUEUE_SERIAL)];
开发平台和机型:iOS 所有机型
SDK版本号:2.2.2
代码或日志截图(上传截图能帮助您更快解决问题):
[[BDSSpeechSynthesizer sharedInstance] setSDKCallbackQueue:dispatch_queue_create("baiduVoiceQueue", DISPATCH_QUEUE_SERIAL)];
复现步骤、现象及其他描述:
出现的问题是,推送消息用百度语音TTS播报,百度设置的线程是主线程串行,在调用时我也加了同步锁,可还是在消息频繁推送的情况下,上一条消息还没播报完就被下一条给盖过去了
回复Fabuinitial:可以参考 合成委托的函数(
[[BDSSpeechSynthesizer sharedInstance] setSynthesizerDelegate:self];
)通过修改合成开始,合成结束等委托 进行播报顺序的控制
回复周俊316:嗯,好的,APP ID:9539034
您好,能否提供下APP ID 以便技术追查原因?稍后技术查看后,给您详细答复