* Java needs to call `whisper_full_default_params_by_ref()`, returning struct by val does not seem to work. * added convenience methods to WhisperFullParams * Remove unused WhisperJavaParams
54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
# Java JNI bindings for Whisper
|
|
|
|
This package provides Java JNI bindings for whisper.cpp. They have been tested on:
|
|
|
|
* <strike>Darwin (OS X) 12.6 on x64_64</strike>
|
|
* Ubuntu on x86_64
|
|
* Windows on x86_64
|
|
|
|
The "low level" bindings are in `WhisperCppJnaLibrary`. The most simple usage is as follows:
|
|
|
|
```java
|
|
import io.github.ggerganov.whispercpp.WhisperCpp;
|
|
|
|
public class Example {
|
|
|
|
public static void main(String[] args) {
|
|
String modelpath;
|
|
WhisperCpp whisper = new WhisperCpp();
|
|
// By default, models are loaded from ~/.cache/whisper/ and are usually named "ggml-${name}.bin"
|
|
// or you can provide the absolute path to the model file.
|
|
whisper.initContext("base.en");
|
|
|
|
long context = whisper.initContext(modelpath);
|
|
try {
|
|
whisper.fullTranscribe(context, samples);
|
|
|
|
int segmentCount = whisper.getTextSegmentCount(context);
|
|
for (int i = 0; i < segmentCount; i++) {
|
|
String text = whisper.getTextSegment(context, i);
|
|
System.out.println(segment.getText());
|
|
}
|
|
} finally {
|
|
whisper.freeContext(context);
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Building & Testing
|
|
|
|
In order to build, you need to have the JDK 8 or higher installed. Run the tests with:
|
|
|
|
```bash
|
|
git clone https://github.com/ggerganov/whisper.cpp.git
|
|
cd whisper.cpp/bindings/java
|
|
|
|
./gradlew build
|
|
```
|
|
|
|
## License
|
|
|
|
The license for the Go bindings is the same as the license for the rest of the whisper.cpp project, which is the MIT License. See the `LICENSE` file for more details.
|
|
|