为多个文件实现Microsoft.CognitiveServices.Speech识别

时间:2018-10-18 18:50:09

标签: java microsoft-cognitive azure-cognitive-services

我从here得到了编码示例,可以工作了。

我可以运行一个.wav文件并获取成绩单,但是在该示例中,该程序直到我按下某个键时才结束:

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

这似乎在查询服务时人为地暂停了所有操作。 如果我删除了这些行,程序将快速跳转并结束,而无需等待服务响应。

问题:如何在不敲键的情况下以完全转录的方式继续/继续执行程序?

我想为多个.wav文件运行此文件,然后相互转录。但是到目前为止,它运行第一个然后等待。

我一直在搜寻documentation,并且尝试了多种方法,包括使用recognizer.close();,我希望可以结束SpeechRecognizer,但似乎无能为力。

或使用result = recognizer.recognizeOnceAsync().get();不会转录完整文件。

有人知道运行多个文件的示例或如何实现该示例吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以创建一个函数来读取并返回目录中的文件列表:

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.
}

您还可以尝试使用Batch Transcription功能!

  

如果您有大量音频输入,则批量转录是理想的选择   存储。