Я хочу проанализировать String
и проверить, содержит ли он определенные ключевые слова, такие как "1 минута", когда текст произносится системой.
Я столкнулся с проблемой, когда AVSpeechSynthesizer
берет всю строку за раз и выполняет свою операцию. У меня нет контроля над анализом строки во время воспроизведения, чтобы проверить эти ключевые слова.
Мой код для преобразования текста в речь выглядит следующим образом:
func Speech() {
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .mixWithOthers)
try AVAudioSession.sharedInstance().setActive(true)
print("Session is Active")
} catch {
print(error)
}
if !speechSynthesizer.isSpeaking {
self.VoiceString = self.VoiceString+self.DirectionsString
let speechUtterance = AVSpeechUtterance(string: self.VoiceString)
var voiceToUse: AVSpeechSynthesisVoice?
speechUtterance.voice = voiceToUse
speechUtterance.rate = Float(self.RangeSlider.selectedMinValue/2)
speechSynthesizer.speak(speechUtterance)
}
else {
speechSynthesizer.continueSpeaking()
}
animateActionButtonAppearance(shouldHideSpeakButton: true)
}
Можно ли определить конкретную строку с помощью
AVSpeechSynthesizer
или у вас есть другой подход?