2017-07-18 26 views
1

我正在編寫一個應用程序來爲學生閱讀隨機研究問題。Swift - 重置/重新啓動SpeechSynthesizer完成後

的基本流程是:

  • 隨機生成的問題
  • 文本分配到SpeechUtterrance
  • 與SpeechSynthesizer
  • 獲取學生的答案玩SpeechUtterance
  • 檢查它
  • 生成新的隨機問題
  • 重複

一切正常,但我不能讓它讀取多個問題。它會說第一個,接受一個答案,但我不能讀它來閱讀隨後的話語。

didFinish運行後,我可以調用重置SpeechSynthesizer/SpeechUtterance的方法嗎?

+0

所以我提到我抓住了學生的答案。我使用SFSpeechRecognizer來做到這一點。經過一些測試後,如果我不使用語音識別器,則可以讀取隨後的話語,沒有問題。我的猜測是AVSpeechSynthesizer和SFSpeechRecognizer之間存在一些我缺少的相互作用,如果這有助於任何人縮小範圍? –

回答

0

所以我使用SFSpeechRecognizer和AVSpeechSynthesizer,並啓動錄音機,切斷音頻通道播放音頻。

我不得不改變

try audioSession.setCategory(AVAudioSessionCategoryRecord)

try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)

而且解決了我的問題。

相關問題