2

我正在尝试通过命令行或在 java 程序中使用名为 Lium 的扬声器分类程序,但没有运气。

在命令行版本上,我收到一个空指针异常消息:

java.lang.NullPointerException

at fr.lium.spkDiarization.lib.MainTools.readGMMContainer(MainTools.java:222)

at fr.lium.spkDiarization.system.Diarization.speech(Diarization.java:193)

at fr.lium.spkDiarization.system.Diarization.ester2Version(Diarization?java:318)

at fr.lium.spkDiarization.system.Diarization.main(Diarization.java:530)

在 java 程序中,创建了输出文件,但大小为 0 字节。

试试这个程序:

该程序应创建一个名为 showName.seg 的文件,其中包含扬声器片段。

但我有错误信息。我尝试了每个版本的软件,结果都一样。

如果您想在 java 程序中试用该软件,请使用源代码中 diarization.java 中的代码

我非常感谢任何帮助。谢谢一堆。

杰夫

4

3 回答 3

3

我发现了这个问题,它与程序中使用的错误文件分隔符有关。Java 期望/在资源定位器中作为分隔符,而代码尝试\在 Windows 中使用本地分隔符。

如果你可以重新编译jar文件(使用ant),所有需要做的就是在文件中File.separator替换;它对我有用。/src\fr\lium\spkDiarization\system\Diarization.java

第 192、229、245、265 和 471 行需要这个简单的更改,例如在第 245 行:

 URL genderURL = getClass().getResource(dir + File.separator + "gender.gmms");

应该 :

 URL genderURL = getClass().getResource(dir + "/" + "gender.gmms");
于 2014-11-25T02:19:04.387 回答
0

使用网站上提供的 jar,它可以正常工作并产生结果。

错误是它试图在 jar 中查找数据文件但未能做到这一点(该文件是ester2/gender.sms)。

可能是您重新编译了 jar 或从源代码构建它,而新更新的 jar 没有该文件

另一种可能性是您可能会使用其他一些 JVM(不是 Oracle),它们在查找 jar 内的资源方面不太好。

作为解决问题的最后一种方法,您可以将数据文件提取到文件夹并修复源以从文件夹中读取它们,而不是从 jar 中。

于 2012-11-29T20:27:27.683 回答
0

windows系统加载gender.sms的问题。我有同样的问题。在linux下运行成功。在我的 Windows 7 上,它崩溃了。根据项目现场,他们知道问题:

注意:windows下有一个问题还没有解决。资源负载(如 gmm)不起作用。

于 2013-10-17T12:42:42.200 回答