2016-05-06 10 views
0

私は単語を言うと、サウンドをトリガーしようとしています。音声認識装置は、私がそれを言うときに単語を認識し、私はそれがコマンドを言うたびに文字列を出すように設定しました。その特定の言葉を話した後、私がしたいことは音を発することです。これは私がこれまで持っていたものです。NSSpeechRecognizer Swiftでトリガーサウンドの再生()Swift

import Cocoa 
import AVFoundation 

class ViewController: NSViewController, NSSpeechRecognizerDelegate { 

var ping = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("ping", ofType: "mp3")!) 
var pingAudioPlayer = AVAudioPlayer() 

var sr = NSSpeechRecognizer() 
@IBOutlet var output: NSTextView? 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 
    pingAudioPlayer = AVAudioPlayer(contentsOfURL: ping, error: nil) 

    sr.delegate = self 
    sr.commands = ["Ping", "Ping Mac"] 
    sr.startListening() 

} 

func speechRecognizer(sender: NSSpeechRecognizer, didRecognizeCommand command: AnyObject?) { 
    output!.string! += "\(command)\n" 
    pingAudioPlayer.play() 
} 
override var representedObject: AnyObject? { 
    didSet { 
    // Update the view, if already loaded. 
    } 
} 

UPDATE:

import Cocoa 
import AVFoundation 

class ViewController: NSViewController, NSSpeechRecognizerDelegate { 

var ping = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("ping", ofType: "mp3")!) 
let pingAudioPlayer = AVAudioPlayer() 

var sr = NSSpeechRecognizer() 
@IBOutlet var output: NSTextView? 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 
    sr.delegate = self 
    sr.commands = ["Ping", "Ping Mac"] 
    sr.startListening() 


} 

func speechRecognizer(sender: NSSpeechRecognizer, didRecognizeCommand command: AnyObject?) { 
    output!.string! += "\(command)\n" 
    var pingAudioPlayer = AVAudioPlayer(contentsOfURL: ping, error: nil) 
    pingAudioPlayer.prepareToPlay() 
    pingAudioPlayer.play() 
} 
override var representedObject: AnyObject? { 
    didSet { 
    // Update the view, if already loaded. 
    } 
} 

}

単語が認識されると、オーディオプレーヤーが音を再生していない理由はわかりません。何か案は?

答えて

0

再生するサウンドをオーディオプレーヤーに伝えていません。試してみてください:

func speechRecognizer(sender: NSSpeechRecognizer, didRecognizeCommand command: AnyObject?) { 

do{ 
    let pingAudioPlayer = try AVAudioPlayer(contentsOfURL:ping) 
    pingAudioPlayer.prepareToPlay() 
    pingAudioPlayer.play() 
}catch { 
    print("Error getting the audio file") 
} 
} 
+0

ありがとうございました。私はXcodeの古いバージョンを持っていることに気づき、その後Swiftにいくつかのアップデートがあったと思います。私はそれを変更し、今何を再生するかをオーディオプレーヤーに伝えていますが、まだサウンドはありません。アップデート – Pjc1992

+0

を参照してください。なぜそれがうまくいかないのかわかりません。 – Pjc1992

+0

私の唯一のオーディオエクスペリエンスはMPMediaPlayerだから、ここで何が問題になるのかは分かりません。 –

関連する問題