From c85b1ae84eecbf797f77a76a30e648c5054ee663 Mon Sep 17 00:00:00 2001 From: Joas Dev <37047923+Jo4sDev@users.noreply.github.com> Date: Tue, 24 Jun 2025 23:35:38 -0500 Subject: [PATCH] bindings.java : update java example (#3281) This commit updates the example in the README.md file as the current Java example code is not working. Resolves: https://github.com/ggml-org/whisper.cpp/issues/2860 --- bindings/java/README.md | 42 ++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/bindings/java/README.md b/bindings/java/README.md index 2be84890..90426997 100644 --- a/bindings/java/README.md +++ b/bindings/java/README.md @@ -23,26 +23,42 @@ import io.github.ggerganov.whispercpp.WhisperCpp; public class Example { public static void main(String[] args) { + 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. - long context = whisper.initContext("base.en"); try { - var whisperParams = whisper.getFullDefaultParams(WhisperSamplingStrategy.WHISPER_SAMPLING_GREEDY); - // custom configuration if required - whisperParams.temperature_inc = 0f; + // 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("../ggml-base.en.bin"); + WhisperFullParams.ByValue whisperParams = whisper.getFullDefaultParams(WhisperSamplingStrategy.WHISPER_SAMPLING_BEAM_SEARCH); + + // custom configuration if required + //whisperParams.n_threads = 8; + whisperParams.temperature = 0.0f; + whisperParams.temperature_inc = 0.2f; + //whisperParams.language = "en"; + + float[] samples = readAudio(); // divide each value by 32767.0f + List whisperSegmentList = whisper.fullTranscribeWithTime(whisperParams, samples); + + for (WhisperSegment whisperSegment : whisperSegmentList) { - var samples = readAudio(); // divide each value by 32767.0f - whisper.fullTranscribe(whisperParams, samples); + long start = whisperSegment.getStart(); + long end = whisperSegment.getEnd(); - int segmentCount = whisper.getTextSegmentCount(context); - for (int i = 0; i < segmentCount; i++) { - String text = whisper.getTextSegment(context, i); - System.out.println(segment.getText()); + String text = whisperSegment.getSentence(); + + System.out.println("start: "+start); + System.out.println("end: "+end); + System.out.println("text: "+text); + } + + } catch (IOException e) { + e.printStackTrace(); } finally { - whisper.freeContext(context); + whisper.close(); } + } } ```