The vosk-api wrapped using Kotlin Multiplatform.
The following are ways to use this wrapper.
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")
}
To build this project, follow the following steps.
- Install
libvosk
. This can be done from source (parent monorepo) or downloaded. - Download a Vosk model to use.
- It is suggested to use a small model to speed up tests.
- 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 oflibvosk
. These are used by the various tests to operate.
- Now that the required steps are complete, one can run
./gradlew build
.
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.
- Possibly target Kotlin/JS
- Possibly target Kotlin/Objective-C (?)