mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-10 16:02:25 +01:00
Models download in Settings instead of shipping in the APK. Credits for the engine and models are in About.
44 lines
1.1 KiB
Kotlin
44 lines
1.1 KiB
Kotlin
// From sherpa-onnx v1.13.8 (Apache-2.0, https://github.com/k2-fsa/sherpa-onnx), kotlin-api.
|
|
package com.k2fsa.sherpa.onnx
|
|
|
|
class OfflineStream(var ptr: Long) {
|
|
init {
|
|
require(ptr != 0L) { "Failed to create native OfflineStream" }
|
|
}
|
|
|
|
fun acceptWaveform(samples: FloatArray, sampleRate: Int) =
|
|
acceptWaveform(ptr, samples, sampleRate)
|
|
|
|
fun setOption(key: String, value: String) = setOption(ptr, key, value)
|
|
|
|
fun getOption(key: String): String = getOption(ptr, key)
|
|
|
|
protected fun finalize() {
|
|
if (ptr != 0L) {
|
|
delete(ptr)
|
|
ptr = 0
|
|
}
|
|
}
|
|
|
|
fun release() = finalize()
|
|
|
|
fun use(block: (OfflineStream) -> Unit) {
|
|
try {
|
|
block(this)
|
|
} finally {
|
|
release()
|
|
}
|
|
}
|
|
|
|
private external fun acceptWaveform(ptr: Long, samples: FloatArray, sampleRate: Int)
|
|
private external fun setOption(ptr: Long, key: String, value: String)
|
|
private external fun getOption(ptr: Long, key: String): String
|
|
private external fun delete(ptr: Long)
|
|
|
|
companion object {
|
|
init {
|
|
System.loadLibrary("sherpa-onnx-jni")
|
|
}
|
|
}
|
|
}
|