AVSpeechSynthesis를 배우려고했습니다. 코드는 iOS 시뮬레이터 (iPad 및 iOS 모두)에서 제대로 작동하지만 음성 기능은 내 iPad에서 전혀 작동하지 않습니다. 여기 내 코드가있다.AVSpeechSynthesizer는 시뮬레이터에서는 작동하지만 기기에서는 작동하지 않습니다.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//Load Model
self.string = @"Hello World";
self.utterance = [[AVSpeechUtterance alloc] initWithString:self.string];
self.utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
self.utterance.rate = (float) 0.25;
//Load UI
self.textLabel.text = self.string;
}
- (IBAction)startSpeaking:(id)sender {
self.speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
if ([self.speechSynthesizer isSpeaking]) {
[self.speechSynthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryWord];
} else {
[self.speechSynthesizer speakUtterance:self.utterance];
}
}
UPDATE : AVSpeechSyntheSizer가 작동 있지만 그래서 나는 UI에 AVSpeechUtterance과 같은 텍스트가있는 UILabel의이 소리가 들리지 않습니다. 나는 AVSpeechSynthesizerDelegate를 구현하여 startSpeaking을 눌렀을 때 : 텍스트 레이블은 현재 단어를 빨간색으로 바꾼다. 그래서 AVSpeechSynthesizer는 델리게이트 호출을 만들기 때문에 작동해야한다는 것을 알고 있지만, 왜 내가 듣지 못하는지 알 수 없습니다. 볼륨이 올라가고 다른 앱에서 오디오를 재생하지 않습니다.
self.speechSynthesizer가 범위를 벗어나지 않았는지 확인하십시오. 그것은 발화의 전체 지속 기간 동안 존재해야합니다. – RegularExpression
@ 대니얼 알아 냈어? –