Skip to content

Swift/iOS wrapper for TFLite libdeepspeechΒ #3061

Open
@reuben

Description

WIP: Build works fine on latest master with some small modifications (DS branch ios-build):

Build for simulator x86_64:

$ bazel build --verbose_failures --config=ios_x86_64 --workspace_status_command="bash native_client/bazel_workspace_status_cmd.sh" --config=monolithic -c opt //native_client:libdeepspeech.so --define=runtime=tflite --copt=-DTFLITE_WITH_RUY_GEMV
$ cp -f bazel-bin/native_client/libdeepspeech.so ../native_client/swift/libdeepspeech.so

Build for arm64:

$ bazel build --verbose_failures --config=ios_arm64 --workspace_status_command="bash native_client/bazel_workspace_status_cmd.sh" --config=monolithic -c opt //native_client:libdeepspeech.so --define=runtime=tflite --copt=-DTFLITE_WITH_RUY_GEMV
$ cp -f bazel-bin/native_client/libdeepspeech.so ../native_client/swift/libdeepspeech.so

Scope for 0.8:

  • Does it actually run? Need to write a test app
  • How to embed and load model in device/simulator
  • Install full Xcode (not just command line tools) in CI workers
    • Create worker VMs locally to test changes
    • Get it working on new worker
    • Upgrade normal workers
    • Land code and CI changes
  • Publish native_client package for iOS
  • Publish deepspeech_ios.framework

Future scope:

  • Publish Swift docs on RTD (no Doxygen support, https://github.com/AnarchyTools/anarchy_sphinx only works with older Sphinx, maybe SourceKitten can be used)
  • How to test things in CI (can we embed a command line client binary in a test app and call it via simctl somehow to get stdout/stderr?)

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions