31 lines
1.1 KiB
Kotlin
31 lines
1.1 KiB
Kotlin
package com.k2fsa.sherpa.onnx
|
|
|
|
fun main() {
|
|
testTts()
|
|
}
|
|
|
|
fun testTts() {
|
|
// see https://github.com/k2-fsa/sherpa-onnx/releases/tag/tts-models
|
|
// https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-amy-low.tar.bz2
|
|
var config = OfflineTtsConfig(
|
|
model=OfflineTtsModelConfig(
|
|
vits=OfflineTtsVitsModelConfig(
|
|
model="./vits-piper-en_US-amy-low/en_US-amy-low.onnx",
|
|
tokens="./vits-piper-en_US-amy-low/tokens.txt",
|
|
dataDir="./vits-piper-en_US-amy-low/espeak-ng-data",
|
|
),
|
|
numThreads=1,
|
|
debug=true,
|
|
)
|
|
)
|
|
val tts = OfflineTts(config=config)
|
|
val audio = tts.generateWithCallback(text="“Today as always, men fall into two groups: slaves and free men. Whoever does not have two-thirds of his day for himself, is a slave, whatever he may be: a statesman, a businessman, an official, or a scholar.”", callback=::callback)
|
|
audio.save(filename="test-en.wav")
|
|
tts.release()
|
|
println("Saved to test-en.wav")
|
|
}
|
|
|
|
fun callback(samples: FloatArray): Unit {
|
|
println("callback got called with ${samples.size} samples");
|
|
}
|