面向人类基于 Swift 的文本机器学习。
要求
- iOS 12.0+
- Xcode 10+
- Swift 4.2+
它也适用于 iOS 11.0+,但 pod 和提供的文件只在上面的环境中进行了测试。
作者
HeercoGrond, [email protected]
许可证
Voxosonus 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖项管理器。有关使用和安装说明,请访问他们的网站。要使用 CocoaPods 将 Voxosonus 集成到 Xcode 项目中,请在 Podfile
中指定它:
pod 'Voxosonus', '~> 0.2'
如果使用的是自建的 Cocoa Pod 版本,则请用以下内容替换,以使用本地 pod:
pod `Voxosonus', :path => '../path/to/Voxosonus'
Why Voxosonus?
机器学习在软件开发中的应用越来越普及,尤其是在通过特定训练模型或卷积神经网络进行数据处理、计算预测方面。然而,我注意到在可以使用该技术提供有趣解决方案的应用中存在明显的缺乏,这主要是因为该主题的复杂度非常高。
Voxosonus旨在降低门槛,通过提供一个基础框架,使Swift中的机器学习对用户来说易于理解并可实现,该框架允许用户将语音转换为文本,或将文本转换为模型,甚至可以使用自己的数据。它旨在灵活适应开发者的需求,因此易学好用,也让高级开发者可以很容易地进行扩展。因此,所有代码都是完全开源的,可根据需要自行修改。
创建自己的模型
在 ./MachineLearningTools
文件夹中提供了创建自己模型的工具。该文件夹里有两个代码示例,帮助您创建与Voxosonus框架一起工作的数据集。
- CreateVoxosonusModel.playground
- FilterLabeledData.playground
FilterLabeledData代码示例已配置为将IBM Watson工作空间的json转化为CreateVoxosonusModel代码示例可读格式。将文件输入到代码示例的资源中,更改变量加载指定的数据集以进行适配或更改。在这两种情况下,结果都将保存在您的文档中。
如果您已创建了一个新的模型,只需简单地将项目中现有的VoxosonusMLModel文件替换,并为您的目的构建框架的新版本,或者直接按上述方式链接cocoa pod。强烈建议使用后者,因为当直接更改子类实现时,行为可能会不可预测。
框架的实现
下面所示的代码是在iOS 12.0设备上使用Swift 4.2的一个简单实现,如本项目内添加的VoxosonusExampleApp所示。
import UIKit
import Voxosonus
// In order to be given an answer as to what data is given, you will need to have your class inherit the VoxosonusDelegate.
class ViewController: UIViewController, VoxosonusDelegate {
// Initialize the Voxosonus public facing class. This houses all the public available functions for use in your application.
let model = Voxosonus()
override func viewDidLoad() {
super.viewDidLoad()
// Set the delegate for the Voxosonus class.
model.delegate = self;
// You can subscribe tags that will be added and 'listened' to when the framework starts listening to speech.
model.subscribeTag(tag: Tag(tagname: "decision_replies"))
}
// An example of the listening of the framework bound to a button.
@IBAction func startTest(_ sender: Any) {
model.startListening()
}
// This function is inherited from the VoxosonusDelegate protocol and will fire once the framework has been done processing and analyzing the spoken sentence.
func labelFound(label: Tag) {
print(label.value)
}
}
故障排除
我使用的数据集似乎不兼容。
在CreateVoxosonusModel游戏场的注释中有对预期数据的简要描述。一般来说,如果您保持json文件的标签和文本字段的结构,它将会正常工作。以下是一个例子
[
{
"label": "A label",
"text": " some text"
},
{
"label": "Another label",
"text": "some other more relevant text"
}
]
我已经加载了pod或框架,但它似乎不工作。
请确保您已正确导入,使用 import Voxosonus
,然后验证以下内容
-
框架已按本说明中用法部分的描述正确添加。
-
您已实现了
VoxosonusDelegate
,并将Voxosonus
类的委托设置为包含它的文件。 -
您已通过模型订阅了一个“标签”。
如果您已执行以下操作但仍出现问题,请在存储库中创建一个问题。