J'essaie d'implémenter la reconnaissance vocale dans une application iOS Swift. Lorsque l'utilisateur appuie sur un bouton «micro», j'essaie de jouer un son système, puis utiliser SpeechKit pour faire de la reconnaissance vocale. La reconnaissance vocale fonctionne bien, et le son fonctionne bien, si je commente le code SpeechKit. Cependant, quand je les rassemble, je n'ai pas de son. De plus, je n'obtiens pas le son à la fin, une fois la reconnaissance vocale terminée.Essayer de lire le son du système avant la reconnaissance vocale avec SpeechKit
Voici le code:
@IBAction func listenButtonTapped(sender: UIBarButtonItem) {
let systemSoundID: SystemSoundID = 1113
AudioServicesPlaySystemSound (systemSoundID)
let session = SKSession(URL: NSURL(string: "nmsps://{my Nuance key}@sslsandbox.nmdp.nuancemobility.net:443"), appToken: "{my Nuance token}")
session.recognizeWithType(SKTransactionSpeechTypeDictation,
detection: .Long,
language: "eng-USA",
delegate: self)
}
func transaction(transaction: SKTransaction!, didReceiveRecognition recognition: SKRecognition!) {
var speechString = recognition.text
print(speechString!)
let systemSoundID: SystemSoundID = 1114
AudioServicesPlaySystemSound (systemSoundID)
}
Quoi qu'il en soit, la reconnaissance vocale fonctionne toujours bien. Si je commente cela, alors le son du système joue bien.
par exemple. le suivant jouera le son bien chaque fois que j'appuie sur le bouton:
@IBAction func listenButtonTapped(sender: UIBarButtonItem) {
let systemSoundID: SystemSoundID = 1113
AudioServicesPlaySystemSound (systemSoundID)
}
J'ai essayé différentes files d'attente sans succès. Je pense que je dois déplacer le code SpeechKit vers un rappel ou une fermeture d'un certain type, mais je ne suis pas sûr de la façon de le construire.
double possible de (http://stackoverflow.com/questions/14121612/audioservicesplaysystemsound-know-when-sound-stopped) [AudioServicesPlaySystemSound savoir quand son arrêté] Vous pouvez –
utilisez 'AudioServicesAddSystemSoundCompletion' –