Tôi đã cố gắng tìm hiểu AVSpeechSynthesis. Mã hoạt động tốt trong Trình mô phỏng iOS (cả trên iPad và iOS) nhưng tính năng chuyển văn bản thành giọng nói không hoạt động ở tất cả trên iPad của tôi. Đây là mã của tôi.AVSpeechSynthesizer hoạt động trên trình mô phỏng nhưng không hoạt động trên thiết bị
- (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 đang làm việc nhưng không có âm thanh Vì vậy, tôi có một UILabel với nội dung giống với các AVSpeechUtterance trên giao diện người dùng. Tôi đã triển khai AVSpeechSynthesizerDelegate để khi tôi nhấn startSpeaking: nhãn văn bản chuyển từ màu đỏ hiện tại. Vì vậy, tôi biết rằng AVSpeechSynthesizer phải làm việc vì nó làm cho các cuộc gọi đại biểu nhưng tôi không thể tìm ra lý do tại sao tôi không thể nghe thấy nó. Âm lượng tăng và không có ứng dụng nào khác đang phát âm thanh.
Hãy chắc chắn rằng self.speechSynthesizer sẽ không nằm ngoài phạm vi. Nó phải tồn tại trong toàn bộ thời gian của lời nói. – RegularExpression
@Daniel Bạn đã tìm ra nó chưa? –