//import Speech
//import AVFoundation
// create a text field to show speech output
@IBOutlet weak var transcriptionTextField: UITextView!
// we need this audio player to play audio
var audioPlayer: AVAudioPlayer!
override func viewDidLoad()
{
super.viewDidLoad()
}
// this function is required to stop audio on audio completion otherwise it will play same audio again and again
func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool)
{
player.stop()
}
// this function is required to get a speech recognizer and after that make and request to speech recognizer
func requestSpeechAuth()
{
SFSpeechRecognizer.requestAuthorization { authStatus in
if authStatus == SFSpeechRecognizerAuthorizationStatus.authorized {
if let path = Bundle.main.url(forResource: "mpthreetest", withExtension: "m4a") {
do {
let sound = try AVAudioPlayer(contentsOf: path)
self.audioPlayer = sound
self.audioPlayer.delegate = self
sound.play()
} catch {
print("error")
}
let recognizer = SFSpeechRecognizer()
let request = SFSpeechURLRecognitionRequest(url:path)
recognizer?.recognitionTask(with: request) { (result, error) in
if let error = error {
print("there is a error\(error)")
} else {
// here you are printing out the audio output basically showing it on uitext field
self.transcriptionTextField.text = result?.bestTranscription.formattedString
}
}
}
}
}
}
// here you are calling requestSpeechAuth function on UIButton press
@IBAction func playButtonPress(_ sender: AnyObject)
{
requestSpeechAuth()
}