private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US")) private var let audioEngine = AVAudioEngine() override func viewDidLoad() { super.viewDidLoad() SFSpeechRecognizer.requestAuthorization append(buffer) } audioEngine.prepare() try audioEngine.start() }}代码解释:SFSpeechRecognizer
SFSpeechRecognizer:这个类是语音识别的操作类,用于语音识别用户权限的申请,语言环境的设置,语音模式的设置以及向Apple服务发送语音识别的请求。 使用SFSpeechRecognize类的requestAuthorization方法来进行用户权限的申请,用户的反馈结果会在这个方法的回调block中传入,如下: //申请用户语音识别权限 [SFSpeechRecognizer //用户授权语音识别 SFSpeechRecognizerAuthorizationStatusAuthorized, }; 如果申请用户语音识别权限成功,开发者可以通过SFSpeechRecognizer 操作类来进行语音识别请求,示例如下: //创建语音识别操作类对象 SFSpeechRecognizer * rec = [[SFSpeechRecognizer alloc]init]; 类 SFSpeechRecognizer类的主要作用是申请权限,配置参数与进行语音识别请求。
首先,声明一个speechRecognizer变量: private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier { super.viewDidLoad() microphoneButton.isEnabled = false //2 speechRecognizer.delegate = self //3 SFSpeechRecognizer.requestAuthorization OperationQueue.main.addOperation() { self.microphoneButton.isEnabled = isButtonEnabled } } } 首先,我们创建一个带有标识符en-US 的 SFSpeechRecognizer 之后,我们必须通过调用SFSpeechRecognizer.requestAuthorization方法来请求语音识别的授权。 最后,检查验证的状态。如果被授权了,让microphone按钮有效。 实现内容看下面: func speechRecognizer(_ speechRecognizer: SFSpeechRecognizer, availabilityDidChange available
import Speech; 首先判断当前应用所处的权限状态,若当前状态为NotDetermined(未确定),此时,需要调用系统提供的请求权限方法,同时也是触发系统弹窗的所在点; 该权限涉及到的类为** SFSpeechRecognizer unAuthorizedHandler:(void(^)())unAuthorizedHandler{ SFSpeechRecognizerAuthorizationStatus authStatus = [SFSpeechRecognizer authStatus == SFSpeechRecognizerAuthorizationStatusNotDetermined) { //调用系统提供的权限访问的方法 [SFSpeechRecognizer
import Speech; 首先判断当前应用所处的权限状态,若当前状态为NotDetermined(未确定),此时,需要调用系统提供的请求权限方法,同时也是触发系统弹窗的所在点; 该权限涉及到的类为** SFSpeechRecognizer unAuthorizedHandler:(void(^)())unAuthorizedHandler{ SFSpeechRecognizerAuthorizationStatus authStatus = [SFSpeechRecognizer authStatus == SFSpeechRecognizerAuthorizationStatusNotDetermined) { //调用系统提供的权限访问的方法 [SFSpeechRecognizer