SpeechSynthesizer在Swift中不提供给予自然的停顿以实现句号

wwwo4jvm  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(208)

我正在做一个文本发言的任务。在其中我面临的问题,如果我得到的文本,例如:Hello everyone. 2 minutes to go.然后使用下面的语音合成器代码,它将整个文本视为一个句子,并且在Hello everyone.之后不给予给予自然停顿。它将整个文本视为一个句子,就像在Hello everyone之后没有. (full stop)一样。仅当标点符号. (full stop)后有数字时才会发生这种情况

  1. let utterance = AVSpeechUtterance(string: "Hello everyone. 2 minutes to go.")
  2. utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
  3. utterance.rate = AVSpeechUtteranceDefaultSpeechRate
  4. synthesizer.speak(utterance)

字符串
如果你关心我如何初始化会话和合成器,那么下面是代码:

  1. let synthesizer = AVSpeechSynthesizer()
  2. let session = AVAudioSession.sharedInstance()
  3. do {
  4. try session.setCategory(.playback, options: .duckOthers)
  5. try session.setActive(true)
  6. } catch {
  7. print(error.localizedDescription)
  8. }

t3irkdon

t3irkdon1#

@Umair这不仅发生在你写的东西,以数值开始,但它也发生在你的下一个句子不是以大写字母开始,例如Hello everyone. two minutes to go.事实上,这些都是错误的,在你的文字写作,而不是任何问题与AVSpeechSynthesizer。语法上,如果你想写这篇文章,那么它应该在以下方式之一。
各位好。还有两分钟。

大家好,还有两分钟。
上面的两句话都将给予你问题的确切答案。另一行可以为你工作,但这不是一个适当的句子。Hello everyone,. 2 minutes to go.
希望本文能够帮助

相关问题