Skip to content

Latest commit

 

History

History
 
 

kotlin

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

vosk-api-kotlin

The vosk-api wrapped using Kotlin Multiplatform.

Usage

The following are ways to use this wrapper.

JVM

For Java & Android targets.

dependencoes {
    val voskVersion = "0.4.0-alpha0"

    // Generic
    implementation("com.alphacephei:vosk-api-kotlin:$voskVersion")

    // Android
    implementation("com.alphacephei:vosk-api-kotlin-android:$voskVersion")
}

Building

To build this project, follow the following steps.

  1. Install libvosk. This can be done from source (parent monorepo) or downloaded.
  2. Download a Vosk model to use.
  • It is suggested to use a small model to speed up tests.
  1. Once both are downloaded and placed into a proper location (hopefully following UNIX specification). Set the following environment variables:
  • VOSK_MODEL to the path of the model.
  • VOSK_PATH to the path of libvosk. These are used by the various tests to operate.
  1. Now that the required steps are complete, one can run ./gradlew build.

Kotlin/Native

Currently, the native target is disabled due to a lack of vosk-api packaging on platforms. Further worsened by the fact that installing the vosk-api on Linux systems is a chore.

First, either install from source or download and install into the proper unix directories as expected in libvosk.def.

To enable development for Kotlin/Native, do either for the following.

  • Add NATIVE_EXPERIMENT=true to your environment.
  • Go into build.gradle.kts & find enableNative & set the right side to true.

Afterwards, when syncing the project, the native source sets will become available to work on. It is suggested to run cinteropLibvoskNative to generate the Kotlin C bindings to work with.

Future

  • Possibly target Kotlin/JS
  • Possibly target Kotlin/Objective-C (?)