У меня есть приложение iOS, которое читает текст с использованием API OpenEars. Я использую последнюю версию (1.2.5). Я не могу понять, как изменить высоту, пока слова читаются («на лету»). Я создал ползунок для управления высотой тона. Делегат запускается с изменением ползунка. В функции делегата изменен параметр target_mean FliteController. Цель состояла в том, чтобы изменить высоту тона, как только значение target_mean было изменено. Мой код выглядит следующим образом:Динамическое изменение шага OpenEars (на лету)
-(void)sayTheMessage:(NSString *)message {
// if there is nothing there, don't try to say anything
if (message == nil)
return;
[self.oeeo setDelegate:self];
// we are going to say what is in the label...
@try {
// set the pitch, etc...
self.flite.target_mean = pitchValue; // Change the pitch
self.flite.target_stddev = varienceValue; // Change the variance
self.flite.duration_stretch = speedValue; // Change the speed
// finally say it!
[self.flite say:message withVoice:self.slt];
}
@catch (NSException *exception) {
if ([delegate respondsToSelector:@selector(messageError)])
[delegate messageError];
}
@finally {
}
}
-(void)changePitch:(float)pitch {
if ((pitch >= 0) && (pitch <= 2)) {
// save the new pitch internally
pitchValue = pitch;
// change the pitch of the current speaking....
self.flite.target_mean = pitchValue;
}
}
Любые идеи?