저는 2 일 동안 특정 Google API를 사용하려고했습니다. 3 개의 다른 프로젝트가 시도되었는데, 하나는 Perl (매우 초기에 사망)에서 하나는 Python (마지막 장애물에서 부서지면서 태워졌습니다)이고 마지막 하나는 Ruby입니다. 표준 명령으로 명령 줄에서 호출 할 때 루비 하나는 실제로 작동 예 :Ruby Gem이 명령 행에서 작동하고 irb가 루비 스크립트 또는 Java 프로세스로 실행될 때 실패합니다.
require 'speech'
audio = Speech::AudioToText.new("i-like-pickles.wav")
puts audio.to_text.inspect
: 당신이
irb
를 열고 프로젝트 사이트에있는 샘플 코드에 넣어 경우에도 작동
speech2text somefile.wav
그러나 위와 같은 Ruby .rb 파일은 ruby -rubygems somescript.rb
으로 실행하면 작동하지 않습니다. 그것은이와 함께 종료 :
/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 script/test_s2t.rb:6
다시 공급되는 동일한 오류 메시지의 런타임 처리 결과 자바에서 명령 줄 이진 speech2text
를 사용하려고. 이 불만을 위반 라인은 약 :
def initialize(file)
self.duration = Duration.new(`ffmpeg -i #{file} 2>&1`.strip.scan(/Duration: (.*),/).first.first)
end
하지만 중 하나 irb
이나 터미널에서 바이너리를 통해 실행될 때 완벽하게 작동 주어진 나에게 않을 것 같다 거기에 실제로 문제가되는 아이디어.
진짜 문제는 내가 Ruby를 전혀 모른다는 것입니다. Java로 작업하기 때문에이 API가 필요합니다. 일부 메소드에서 실행된다는 사실은 아마도 올바르게 설치되었다는 것을 말해 주지만, .rb 스크립트를 작동 시키거나 외부에서 실행시키지 않으면, 사용 방법을 볼 수 없습니다. 나는 JRuby가 나에게 추천 해 줬지만, JRuby를위한 루비 보석을 수동으로 설치해야 할 것 같아서, 나에게 너무 복잡 할 수도있다. (나는 적어도 어떻게해야할지 모른다. 나는 그것을하는 법을 알지 못한다고 생각합니다!)
코어 오류 메시지에 대한 조언은 많이 드러나지 만, 문제에 대한 명확한 회피가 있다면 알려주십시오.
편집 - 사실상 경로 문제였습니다. Ruby는 정확한 파일을 찾는데 어려움을 겪고 있었고 speech2text/ffmpeg는 결과적으로 오히려 애매하게 실패했습니다. 감사!
어떤 특정 문제가 잘못 처리되고 있습니까? 그것은 보석 speech2text입니까? 루비 자체 설치? 또는 speech2text 자체가 사용하는 내용 (ffmpeg과 같이)은 무엇입니까? 미안해. 너무 노골적으로 생각하고있어 미안하다. 루비가 어떻게 작동하는지, 그리고 오늘 너무 놀랐어. – mtrc
또한 - 시간을내어 읽고 응답 해 주셔서 감사합니다. – mtrc
두 가지 :'i-like-pickles.wav'와'ffmpeg' 바이너리. 먼저 사운드 파일의 절대 경로를 사용해야합니다. –