Ich verwende Nuance Speechkit 2 mit swift, iOS 9.3. Ineed zu erkennen, wenn das TTS abgeschlossen ist, nach dieser Dokumentation:So erkennen Sie das Ende der Sprache mit Nuance Vocalizer, Speechkit 2, für iOS
https://developer.nuance.com/public/Help/DragonMobileSDKReference_iOS/Speech-synthesis.html
... Dies sind die drei Delegatmethoden für TTS zur Verfügung:
// SKTransactionDelegate
func transaction(transaction: SKTransaction!, didReceiveAudio audio: SKAudio!) { ... }
func transaction(transaction: SKTransaction!, didFinishWithSuggestion suggestion: String!) { ... }
func transaction(transaction: SKTransaction!, didFailWithError error: NSError!, suggestion: String!) { ... }
Auch hier ist eine Probe Swift Projekt (https://developer.nuance.com/public/index.php?task=prodDev), wobei das TTS Beispiel eine zusätzliche, SKAudioPlayerDelegate, und im Code verwendet habe ich diesen Delegatmethode jedoch nie löst er:
func audioPlayer(player: SKAudioPlayer!, willBeginPlaying audio: SKAudio!) {
log("willBeginPlaying")
// The TTS Audio will begin playing.
}
Ich rufe TTS mit:
var skTransaction = skSession!.speakString("a long sentence here",withLanguage: "eng-USA",delegate: self)
jedoch „didFinishWithSuggestion“ löst immer lange vor der TTS Stimme sprechen beendet ist, was für mich wie ein Fehler zu sein scheint. Der technische Support von Nuance antwortet nicht, kann mir jemand helfen? Vielen Dank.