Реализация Microsoft.CognitiveServices.Speech для нескольких файлов - PullRequest
0 голосов
/ 18 октября 2018

Я получил пример кодирования от здесь для работы.

Я могу запустить файл .wav и получить расшифровку, однако в примере программа никогда не завершается, пока я не нажму клавишу:

System.out.println("Press any key to stop");
new Scanner(System.in).nextLine();

Это, кажется, искусственно останавливает все, покауслуга запрашивается.Если я уберу эти строки, программа перейдет к быстрому и завершит работу, не дожидаясь ответа службы.

Вопрос : Как возобновить / продолжить программу с полной транскрипцией безНужно нажать клавишу?

Я хотел бы запустить это для нескольких файлов .wav, транскрибирующих один за другим.Но пока он запускает первый, а затем ждет.

Я изучал документацию и пробовал несколько вещей, включая использование recognizer.close();, которое я ожидал бы завершить SpeechRecognizer, но которое, похоже, ничего не делает.

Или используя result = recognizer.recognizeOnceAsync().get();, который не расшифровывает полный файл.

Кто-нибудь знает пример запуска нескольких файлов или как его реализовать?

Спасибо.

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете создать функцию, которая будет читать и возвращать список файлов в вашем каталоге:

private static String[] GetFiles(String directory)
{
    String[] files = (new File(directory)).list(File::isFile);
    return files;
}

Затем перебрать их, чтобы обработать, и затем записать их.

String[] files = GetFiles(args[0]);
for (String file : files)
{
    //Your code goes here.
    System.out.printf("File %1$s processed" + "\r\n",file);//print out which file has been successfully processed.
}

Вы также можете попробовать использовать функцию Пакетная транскрипция !

Пакетная транскрипция идеальна, если в хранилище много аудио.

...