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.
}
}
}
単語が認識されると、オーディオプレーヤーが音を再生していない理由はわかりません。何か案は?
ありがとうございました。私はXcodeの古いバージョンを持っていることに気づき、その後Swiftにいくつかのアップデートがあったと思います。私はそれを変更し、今何を再生するかをオーディオプレーヤーに伝えていますが、まだサウンドはありません。アップデート – Pjc1992
を参照してください。なぜそれがうまくいかないのかわかりません。 – Pjc1992
私の唯一のオーディオエクスペリエンスはMPMediaPlayerだから、ここで何が問題になるのかは分かりません。 –