Java 执行 Ruby 脚本时收到错误;终端没有

标签 java ruby terminal

这是这个问题的一个分支问题: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/

相关文章:

terminal -/bin/su : Permission denied in CentOS can not set su - root

java - 无法运行程序 "adb": error=13, 权限被拒绝

java - 如何在 Android 中将颜色整数转换为十六进制字符串?

ruby - 如何手动将 cookie 添加到 Mechanize 状态?

Ruby 基准测试模块 : meanings of "user", "system"和 "real"?

ruby-on-rails - Rails 验证检查的顺序/优先级

java - Java中接口(interface)和类的区别

java - Caused by : java. lang.OutOfMemoryError: Java heap space in BIRT 报告

terminal - printf() 语句中出现的终端代码\033[E 和\033[07 的含义是什么?

python - shutil.get_terminal_size() 不变