我试图用命令行或java程序中的命令行使用名为Lium的扬声器diarization程序,结果却没有成功。
在命令行版本中,我得到一个空指针异常消息:
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中的代码。
我非常感谢你的帮助。谢谢一堆。
杰夫
发布于 2014-11-25 02:19:04
我发现了这个问题,是与程序中使用的文件分隔符错误有关的。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");发布于 2012-11-29 20:27:27
通过网站上提供的jar,它工作得很好,并产生了结果。
错误是它试图在jar中找到一个数据文件,但是失败了(文件是ester2/ and .sms)。
可能是您重新编译了jar或从源代码构建了jar,而新更新的jar没有该文件。
另一种可能是,您可能会使用其他JVM (而不是Oracle),这对于在jar中找到资源不是很好。
作为解决问题的最后一种方法,您可以将数据文件解压缩到文件夹中,并修复源,以便从文件夹(而不是从jar )读取它们。
发布于 2013-10-17 12:42:42
windows系统中加载gender.sms的问题。我也有同样的问题。在linux下,它成功地运行。而在我的窗户7上它正在崩溃。根据项目现场,他们知道问题:
警告:窗口下有一个问题尚未解决。资源负载(如gmm)无法工作。
https://stackoverflow.com/questions/13624214
复制相似问题