这是这个问题的一个分支问题:flac: "ERROR: input file has an ID3v2 tag" (it doesn't) 。我已经解决了最初的问题,但这并没有解决我遇到的一个问题,所以我将在这里单独介绍它。
我正在使用名为speech2text 的Ruby gem 将音频文件转换为(近似的)文本。在命令行上调用它效果很好(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 集成。
关于Java 执行 Ruby 脚本时收到错误;终端没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861510/