mirror of
https://github.com/alphacep/vosk-api.git
synced 2026-01-09 07:32:34 +08:00
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.
- 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_MODELto the path of the model.VOSK_PATHto the path oflibvosk. These are used by the various tests to operate.
- 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=trueto 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 (?)