iOS10 Speech Recognition语音识别API的使用

概述

iOS用户习惯于使用Siri与应用程序进行交互,而当键盘出现时,使用听写来捕捉他们的语音。语音api可以让你在不需要键盘的情况下扩展和增强你应用程序中的语音识别体验。

语音api通过与苹果的服务器通信或使用on-device语音识别器来实现语音识别,如果可用的话。发现如果一个语音识别器是用于一个特定的语言,你采用SFSpeechRecognizerDelegate协议。

因为您的应用程序可能需要连接到服务器来执行识别,所以您必须尊重用户的隐私,并将他们的言论视为敏感数据。出于这个原因,在开始语音识别之前,必须获得用户的显式权限。

请注意 如果用户授予权限,则不必再次请求。这里需要在Info.plist文件里面添加相关描述文件:1. NSSpeechRecognitionUsageDescription : 语音识别使用描述、 2.NSMicrophoneUsageDescription:麦克风使用描述

语音识别分为:识别本地录音、识别即时语音录入两种情况,下面的代码是识别即时语音的录入,具体的内容看代码:

首先导入Speech.framework【Build Phases->Link Binary With Libraries->+】

iOS10 Speech Recognition语音识别API的使用_第1张图片
iOS10 Speech Recognition语音识别API的使用_第2张图片
iOS10 Speech Recognition语音识别API的使用_第3张图片
iOS10 Speech Recognition语音识别API的使用_第4张图片
iOS10 Speech Recognition语音识别API的使用_第5张图片
iOS10 Speech Recognition语音识别API的使用_第6张图片

在app中开始使用语音识别:

例如,如果你的待办事项应用程序改变了一个项目的状态,当用户说“完成”时,你可能会写“让你标记一个完成的项目”。

NSSpeechRecognitionUsageDescription键添加到您的信息。plist文件并提供您所写的作为字符串值的语句。

使用请求授权:通过显示您在警报中所写的语句请求用户的权限。

如果用户拒绝允许(或语音识别不可用),请优雅地处理它。例如,您可能会禁用显示语音识别可用性的用户界面项。

在用户授予您的应用程序许可来执行语音识别之后,创建一个sfspeech识别器对象并创建一个语音识别请求。

使用SFSpeechURLRecognitionRequest类执行预先录制的识别,磁盘上的音频文件,并使用SFSpeechAudioBufferRecognitionRequest类识别现场音频或内存中的内容。

将请求传递给您的sftalk识别器对象以开始识别。

语音是逐渐被识别的,因此您的识别器的处理程序可以被多次调用。(检查最终属性的值,以确定何时完成识别。)如果您正在使用音频一起生活,你使用SFSpeechAudioBufferRecognitionRequest和附加音频缓冲区在识别过程中请求。

当录音结束时,通知识别器不再需要音频,这样识别就可以完成。注意,在前一个任务结束之前启动一个新的识别任务会中断正在进行的任务。

计划在音频持续时间限制一分钟。语音识别可以给电池寿命和网络使用带来相对较高的负担。在ios10中,语音音频持续时间限制在1分钟左右,类似于键盘相关听写的限制。

你可能感兴趣的:(iOS10 Speech Recognition语音识别API的使用)