这是以下问题的分叉问题:flac: "ERROR: input file has an ID3v2 tag" (it doesn't)。我已经解决了最初的问题,但是并没有解决我遇到的一个问题,因此我将在这里单独介绍它。

我正在使用一个名为Speech2text的Ruby宝石将音频文件转换为(近似)文本。在命令行上调用它可以正常工作(Mac终端)。但是,以下Java代码:

String[] cmd = {"speech2text", "tmp/audio/pop-test-audio.wav"};

    ProcessBuilder builder = new ProcessBuilder(cmd);
    builder.redirectErrorStream(true);
    Process process = builder.start();


仅从流程流中收到此信息:

/Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_inspector.rb:50:in `initialize': undefined method `first' for nil:NilClass (NoMethodError)
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_splitter.rb:77:in `new'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_splitter.rb:77:in `initialize'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:15:in `new'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:15:in `to_text'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/bin/speech2text:11
from /usr/bin/speech2text:19:in `load'
from /usr/bin/speech2text:19


我对Ruby一无所知,因此我通过Java轻巧地使用了该库。我真的不知道这是怎么回事,但是我知道从终端以完全相同的方式执行时它可以工作。有谁知道这可能是什么原因?

最佳答案

您也可以抛弃终端,然后尝试JRuby。它与普通的Ruby VM一样快,并且更易于与Java集成。

10-06 08:54
查看更多