Я работаю над проектом и использую Whisper.cpp для речи к тексту. Я не использую привязки Java и вместо этого собираю примеры/Stream и запускаю их, используя процесс /
api. Я смог запустить пример, и теперь я в точке, мне нужно получить данные из него. Он возвращает данные через stdout , к которому я получаю доступ через WhisperProcess.getInputStream ();
Мои классы:
private final Runnable checkText = new Runnable() {
@Override
public void run() {
String lastLine = "";
try { // Get the last/most recent line of the output
String currentLine;
while ((currentLine = reader.readLine()) != null) { // Issue is here!!!
lastLine = currentLine;
}
} catch (IOException | NullPointerException e) {
throw new RuntimeException(e);
}
System.out.println("You said: " + lastLine);
Matcher matcher = pattern.matcher(lastLine); // Use Regex to search the output
if (matcher.find()) {
System.out.println("You said \"test\"");
} else {
System.out.println("You did not say \"test\"");
}
}
};
< /code>
< /li>
< /ul>
< /li>
< /ul>
Все работает отлично, кроме как получить Последняя строка. Программа застряла в бесконечной цикле проверки самой последней/последней строки вывода программы. Он просто продолжает читать и никогда не достигает конца буферизации
[Start speaking]
And it is picking up my speech.
This is a test.
Great new works.
< /code>
Вопрос < /h3>
Есть ли лучший способ прочитать последнюю строку? < /li>
< li> Почему reader.readline ()
никогда == null?
Что я делаю не так?
Если вам нужно больше контекста необходимости больше информации, я не смогу немного ответить. Просто чтобы вы знали!
Я работаю над проектом и использую Whisper.cpp для речи к тексту. Я не использую привязки Java и вместо этого собираю примеры/Stream и запускаю их, используя процесс /[code]ProcessBuilder[/code] api. Я смог запустить пример, и теперь я в точке, мне нужно получить данные из него. Он возвращает данные через stdout , к которому я получаю доступ через WhisperProcess.getInputStream (); Мои классы: [list] [*] [code]Transcriber< /code>: класс для управления фактическим процессом транскрибирования < /p>
Transcriber.start()[/code]: запускает процесс и устанавливает переменную входного потока [*][code]Transcriber.getInputStream()[/code]: возвращает входной поток процесса [/list]
[*][code]Checker[/code]: проверяет inputstream для конкретного слова [code] public Checker(Transcriber transcriber) {
InputStream inputStream = transcriber.getInputStream(); reader = new BufferedReader(new InputStreamReader(inputStream)); } [/code] [list] [code]Runnable checkText[/code]: запускается каждые 5 секунд для проверки текста [code]private final Runnable checkText = new Runnable() { @Override public void run() { String lastLine = "";
try { // Get the last/most recent line of the output String currentLine; while ((currentLine = reader.readLine()) != null) { // Issue is here!!! lastLine = currentLine; }
[Start speaking] whisper_full_with_state: input is too short - 490 ms < 1000 ms. consider padding the input audio with silence whisper_full_with_state: input is too short - 990 ms < 1000 ms. consider padding the input audio with silence This is a test. I am speaking and it is whisper_full_with_state: input is too short - 690 ms < 1000 ms. consider padding the input audio with silence is picking up my results.
whisper_print_timings: load time = 980.88 ms whisper_print_timings: fallbacks = 7 p / 0 h whisper_print_timings: mel time = 68.58 ms whisper_print_timings: sample time = 132.48 ms / 1 runs ( 132.48 ms per run) whisper_print_timings: encode time = 11970.25 ms / 31 runs ( 386.14 ms per run) whisper_print_timings: decode time = 772.59 ms / 242 runs ( 3.19 ms per run) whisper_print_timings: batchd time = 184.46 ms / 229 runs ( 0.81 ms per run) whisper_print_timings: prompt time = 0.00 ms / 1 runs ( 0.00 ms per run) whisper_print_timings: total time = 19281.81 ms [/code] с 2>/dev/null [code][Start speaking] And it is picking up my speech. This is a test. Great new works. < /code> Вопрос < /h3>
Есть ли лучший способ прочитать последнюю строку? < /li>
< li> Почему reader.readline () [/code] никогда == null? [*] Что я делаю не так? [/list] Если вам нужно больше контекста необходимости больше информации, я не смогу немного ответить. Просто чтобы вы знали!
Я работаю над проектом и использую quiet.cpp для преобразования речи в текст. Я не использую привязки Java, а вместо этого компилирую примеры/поток и запускаю его с использованием процесса/ ProcessBuilder API. Мне удалось запустить пример, и теперь...
InputStream bais = new ByteArrayInputStream(b);
BufferedImage bImageFromConvert = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = bImageFromConvert.createGraphics();
g = cvrimg.getGraphics();
g.drawImage(bImageFromConvert,...
Это мой код для асинхронного чтения файла csv с использованием функции ReadLineAsync() из класса StreamReader, но он читает только первую строку файла csv
private async Task ReadAndSendJointDataFromCSVFileAsync(CancellationToken cancellationToken)...