5

我一直在努力学习 AVSpeechSynthesis。该代码在 iOS 模拟器中运行良好(在 iPad 和 iOS 上),但文本到语音功能在我的 iPad 上根本不起作用。这是我的代码。

    - (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];

    }    
}

更新: AVSpeechSyntheSizer 正在工作,但没有声音 所以我有一个 UILabel,其文本与 UI 上的 AVSpeechUtterance 相同。我实现了 AVSpeechSynthesizerDelegate,这样当我点击 startSpeaking: 时,文本标签会将当前单词变为红色。所以我知道 AVSpeechSynthesizer 必须工作,因为它正在进行委托调用,但我不知道为什么我听不到它。音量已调高,没有其他应用正在播放音频。

4

2 回答 2

11

你的手机有静音模式吗?这也会使合成器静音。

于 2014-06-18T21:21:39.717 回答
4

由于Mute手机的模式,它无法正常工作。要在 iOS 7 中打开“静音”,您必须按照以下步骤操作:

  • 转到您的Setting选择
  • Accessibility
  • AssistiveTouch
  • AssistiveTouch从开关按钮打开选项
  • 然后一个移动辅助图标,将出现在您的设备屏幕上。
  • 触摸它以扩展更多选项
  • 从那里选择Device和触摸Un mute选项。

现在运行该项目并希望它能够工作。

PS:(在 iOS 8.0 中,此代码不起作用,因为对于意外的错误,他们从 iOS8.1 中将其删除,现在可以正常工作)希望它有效。:)

于 2015-01-06T09:39:59.153 回答