使用NSSpeechRecognizer Swift触发声音播放()

时间:2016-05-06 18:43:45

标签: swift

我说完一句话之后我试图触发声音。当我说出来时,语音识别器识别出这个词,并且我已经设置了它,所以每当我说出命令时它就会输出一个字符串。在我说出具体的词之后,我想做的就是触发声音。这是我到目前为止所做的。

  $scope.condition = function(element, value) {
    // Just returns true for even values

    if (typeof value === "number")
      return value % 2 == 0;
    else if (value instanceof Array) {
      return value.every(function(item) {
        return item % 2 == 0;
      });
    }

  }

  $scope.all = function(element, value) {
    return $scope.condition(element, value);
  }

更新:

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.
    }
}

}

一旦识别出单词,不确定为什么音频播放器没有播放声音。有什么想法吗?

1 个答案:

答案 0 :(得分: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")
 }
}
相关问题