Используйте микрофон в Java для распознавания речи с помощью VOSKJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Используйте микрофон в Java для распознавания речи с помощью VOSK

Сообщение Anonymous »

Я пытаюсь добавить распознавание речи в реальном времени в свой Java-проект (желательно в автономном режиме). Погуглив и попробовав другие решения, я остановился на использовании VOSK для распознавания речи. Однако основная проблема, с которой я столкнулся, заключается в том, что у VOSK очень мало документации и имеется только один файл примера для Java, который используется для извлечения текста из предварительно записанного wav-файла, показанного ниже.

Код: Выделить всё

public static void main(String[] argv) throws IOException, UnsupportedAudioFileException {
LibVosk.setLogLevel(LogLevel.DEBUG);

try (Model model = new Model("src\\main\\resources\\model");
InputStream ais = AudioSystem.getAudioInputStream(new BufferedInputStream(new FileInputStream("src\\main\\resources\\python_example_test.wav")));
Recognizer recognizer = new Recognizer(model, 16000)) {

int nbytes;
byte[] b = new byte[4096];
while ((nbytes = ais.read(b)) >= 0) {
System.out.println(nbytes);
if (recognizer.acceptWaveForm(b, nbytes)) {
System.out.println(recognizer.getResult());
} else {
System.out.println(recognizer.getPartialResult());
}
}

System.out.println(recognizer.getFinalResult());
}
}
Я попытался преобразовать это во что-то, что принимало бы звук с микрофона, как показано ниже:

Код: Выделить всё

public static void main(String[] args) {
LibVosk.setLogLevel(LogLevel.DEBUG);
AudioFormat format = new AudioFormat(8000.0f, 16, 1, true, true);
TargetDataLine microphone;
SourceDataLine speakers;

try (Model model = new Model("src\\main\\resources\\model");
Recognizer recognizer = new Recognizer(model, 16000)) {
try {
microphone = AudioSystem.getTargetDataLine(format);

DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
microphone = (TargetDataLine) AudioSystem.getLine(info);
microphone.open(format);
microphone.start();

ByteArrayOutputStream out = new ByteArrayOutputStream();
int numBytesRead;
int CHUNK_SIZE = 1024;
int bytesRead = 0;

DataLine.Info dataLineInfo = new DataLine.Info(SourceDataLine.class, format);
speakers = (SourceDataLine) AudioSystem.getLine(dataLineInfo);
speakers.open(format);
speakers.start();
byte[] b = new byte[4096];

while (bytesRead 

Подробнее здесь: [url]https://stackoverflow.com/questions/68401284/use-the-microphone-in-java-for-speech-recognition-with-vosk[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка перезагрузки многопроцессорной обработки распознавания речи Vosk
    Anonymous » » в форуме Python
    0 Ответы
    113 Просмотры
    Последнее сообщение Anonymous
  • Используйте распознавание речи Vosk с Python
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Используйте распознавание речи Vosk с Python
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Используйте распознавание речи Vosk с Python
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Используйте распознавание речи Vosk с Python
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»