如何在 iOS 10 中构建语音转文本框架

Kit就是Siri用来做语音识别的框架。Kit来进行语音转文字的类似Siri的app。注意:如果稍后在工程运行完成时还没有看到语音输入授权框,那是因为你是在模拟器上运行的程序。在这个教程中,你学习到了怎样好好的利用苹果公司开放给开发者的惊人的新语言API,用于语音识别并且转换到文本。使用了跟Siri相同的语音识别框架。但是,它非常强大可以让开发者们开发非凡的应用比如转换一个语音文件到文本文字。...

译者:王悦

会上,苹果介绍了一个很好的语音识别API,那就是。事实上,这个 Kit 就是 Siri 用于语音识别的框架。今天有一些语音识别框架可用,但它们要么太贵要么不好。在今天的教程中,我将向您展示如何创建一个类似 Siri 的应用程序,该应用程序使用 Kit 进行语音转文本。

设计应用程序用户界面

先决条件:您需要 Xcode 8 beta 和运行 iOS 10 beta 的 iOS 设备。

首先创建一个名为 . 接下来,将 a、a 和 a 添加到 Main。你的应该是这样的:

接下来为 .swift 文件定义变量。在这个demo中,我设置的名字是“”,名字是“”。然后创建一个空按钮执行方法,该方法在单击按钮时触发。

@(:){

}

如果您不想从创建最原始的项目开始,您可以在此处下载原始项目并继续下面的指导说明。

采用

为了使用它,您必须先导入它,然后遵循协议。因此,让我们导入框架并将其协议添加到文件中。您的 .swift 文件现在应该如下所示:

:,{

@iew:!

@:!

加载(){

极好的。()

}

@(:){

}

}

用户授权

在使用它进行语音识别之前,你必须先获得用户的许可,因为不仅本地 ios 设备会识别它,苹果的服务器也会识别它。所有的语音数据都会传到苹果的后台进行处理。因此,必须获得用户授权。

让我们在方法中授权语音识别。用户必须允许应用使用麦克风和语音识别。首先语音识别转换文字软件mac,声明一个变量:

=(:.init(:'en-US'))//1

然后更新方法如下:

加载(){

语音识别转换文字软件mac_文字转换语音软件_萌妹子文字转换语音软件

极好的。()

.=假//2

.=自我//3

.{()in//4

=假

{//5

案子。:

=真

案子。:

=假

打印('')

案子。:

=假

打印('')

案子。:

=假

打印('')

}

。主要的。(){

自我..=

}

}

}

首先,我们创建一个标识符为 en-US 的实例,以便语音识别 API 可以知道用户说哪种语言。这个实例是处理语音识别的对象。

默认情况下,我们禁用该按钮,直到激活语音识别。

接下来,将语音识别代理设置为 self ,这是我们的 .

之后,我们必须通过调用 . 方法。

萌妹子文字转换语音软件_语音识别转换文字软件mac_文字转换语音软件

最后,检查验证的状态。如果授权,使按钮处于活动状态。如果没有,打印一条错误消息并禁用该按钮。

现在,如果您认为在应用程序启动并运行后会看到授权弹出窗口,那您就错了。如果运行,应用程序将崩溃。好吧,既然你知道了结果,为什么还要问呢?(不要打我),请参阅下面的解决方案。

提供授权消息

Apple 要求应用程序中的所有授权都具有自定义消息。例如语音授权语音识别转换文字软件mac,我们必须请求2个授权:

麦克风使用权。

语音识别。

对于自定义消息,您必须在 info.plist 配置文件中提供这些自定义消息。

让我们打开 info.plist 配置文件的源代码。首先,右键单击 info.plist。然后选择打开方式 > 代码。最后,复制以下 XML 代码,然后在

在标记前插入此代码。

现在您已向 info.plist 文件添加了两个键:

您可以自己更改这些消息的内容。现在点击运行按钮,您应该能够成功编译和运行应用程序而不会出现任何错误。

注意:如果后面工程运行完没有看到语音输入授权框,那是因为你是在模拟器上运行程序。iOS 模拟器无权访问您的 mac 计算机的麦克风。

处理语音识别

现在我们已经实现了用户授权,我们现在去实现语音识别功能。首先在里面定义以下对象:

:?

n任务:问?

e=()

该对象处理语音识别请求。它为语音识别提供语音输入。

任务对象告诉您语音识别对象的结果。拥有这个对象很方便,因为您可以使用它来删除或中断任务。

是您的语音引擎。它负责提供您的语音输入。

接下来,创建一个名为 () 的新方法。

(){

!=无{

?.()

语音识别转换文字软件mac_萌妹子文字转换语音软件_文字转换语音软件

=无

}

=.()

做{

.()

.()

.(真的,有:.)

}抓住{

打印(''。')

}

=()

=.{

('tnode')

}

=se{

('')

}

.=真

=.(with:,:{(,error)in

=假

!=无{

自我..文本=?..

=(?。)!

}

!=无||{

自我..停止()

.(onBus:0)

萌妹子文字转换语音软件_语音识别转换文字软件mac_文字转换语音软件

自我。=无

自我。=无

自我..=真

}

})

=.(:0)

.(onBus:0,:1024,:){(,when)in

自己。?。()

}

.()

做{

。开始()

}抓住{

打印(''或。')

}

.text=',我'!'

}

单击“开始”按钮时将调用此方法。它的主要功能是打开语音识别并收听您的麦克风。我们逐行分析上面的代码:

触发语音识别

我们需要确保在创建语音识别任务时语音识别是可用的,所以我们必须给它添加一个委托方法。如果语音输入不可用或其状态已更改,则 . 将设置属性。对于这种情况,我们实现了协议的 e 方法。实施见下文:

(:,:布尔){

{

.=真

}别的{

.=假

}

}

当可用性状态发生变化时,将调用此方法。如果语音识别可用,录制按钮将设置为启用。

最后一件事是我们必须更新响应方法 (:):

@(:){

.{

。停止()

?.()

.=假

。('',为了:。)

}别的{

()

。('',为了:。)

}

}

在这种方法中,我们必须检查它是否有效。如果是这样,应用程序应该停止,中止按钮的音频输入,使按钮不可用,并将按钮的标题设置为“开始”

如果它正在工作,应用程序应该调用 () 并将按钮的标题设置为“停止”。

很好!现在您已准备好测试应用程序。将应用程序部署到 iOS10 设备,然后单击“开始”按钮。去说点什么吧!

注意:

Apple 对每台设备的识别能力都有限制。确切的限制尚不清楚,但您可以联系 Apple 以获取更多信息。

苹果还对每个应用程序的识别能力有限制。

如果您经常遇到限制,请务必联系 Apple,他们应该能够解决问题。

语音识别非常耗电并且使用大量数据。

语音识别一次只持续大约一分钟。

总结

在本教程中,您学习了如何利用 Apple 向开发人员开放的令人惊叹的新语言 API 来进行语音识别和文本转换。使用与 Siri 相同的语音识别框架。这是一个相对较小的 API。但是,它非常强大,允许开发人员创建非凡的应用程序,例如将语音文件转换为文本。

我建议您观看 WWDC 2016 509 以获取更多有用信息。希望您喜欢这篇文章,并在探索这个新 API 时玩得开心。

作为参考,您可以在此处查看完整的项目

相关文章

发表评论