alphacep--vosk-api
a40742bbaf
* kotlin: bump version for future release * kotlin: Unify dependency versions * kotlin: Add AUTHORS * kotlin: Add MAINTENANCE.md * kotlin: Add README.md * kotlin: Update common/Vosk.kt documentation * kotlin: Fix indentation in build.gradle.kts * kotlin: Add .idea files to unify how IDEs work * kotlin: Reformat all code * kotlin: Update all code headers * kotlin: Add @JvmStatic to objects * kotlin: Use Consumer instead of Kotlin lambda in StorageService.kt * kotlin: Annotate SpeechService.kt as throwing IOException * kotlin: Add gradle migration settings * kotlin: Add Deprecated annotation to jvm/LibVosk.setLogLevel * kotlin: Overhaul exceptions * Update documentation * Add function for creating a Recognizer with a proper list * Update documentation
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 (?)