iOS10新特性之SFSpeechRecognizer的使用

SFSpeechRecognizer是iOS10新特性之一,用来进行语音识别的。

1、使用前需要导入头文件

import Speech
  • 1

2、设置请求权限

//请求权限
        SFSpeechRecognizer.requestAuthorization { (state) in
            print(state)
        }
  • 1
  • 2
  • 3
  • 4

3、配置info.plist

//添加一条权限
Privacy - Speech Recognition Usage Description   -> “xxx”
  • 1
  • 2

4、初始化识别器

//初始化一个识别器
let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh_CN"))
  • 1
  • 2
  • 3

5、初始化请求

 //path
 let url = Bundle.main.url(forResource: "bg", withExtension: "mp3")

 //初始化一个识别请求
 let request = SFSpeechURLRecognitionRequest(url: url!)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6、开启识别任务

//开始一个识别请求
recognizer?.recognitionTask(with: request, resultHandler: { (result, error) in
     if error != nil{
                print("识别错误")
                return
     }
     else{
       print(result?.bestTranscription.formattedString)
         }
    })
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

完成代码:


import UIKit
import Speech

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        //请求权限
        SFSpeechRecognizer.requestAuthorization { (state) in
            print(state)
        }
    }

    override func touchesBegan(_ touches: Set, with event: UIEvent?) {
        //初始化一个识别器
        let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "zh_CN"))

        //path
        let url = Bundle.main.url(forResource: "bg", withExtension: "mp3")

        //初始化一个识别请求
        let request = SFSpeechURLRecognitionRequest(url: url!)

        //开始一个识别请求
        recognizer?.recognitionTask(with: request, resultHandler: { (result, error) in
            if error != nil{
                print("识别错误")
                return
            }
            else{
                print(result?.bestTranscription.formattedString)
            }
        })

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

你可能感兴趣的:(iOS)