我正在尝试构建一个冗长的程序和库链,最终使用语音到文本API将mp3文件运行为人类可读的文本。我很惊讶地发现很少有API可以在线执行此操作-我发现唯一可行的方法是Speech2text项目:https://github.com/taf2/speech2text,该项目与Google的非官方Speech-To-Text API挂钩。
这实际上起初是有效的。我进行了一些手动转换,并对结果感到满意。但是,由于尝试在Java中自动化流程链,因此已停止正常工作。
编辑-以下错误消息在技术上是从flac本身而不是Speech2text采购的。尝试仅使用flac而非speech2text转换这些文件也会导致id3v2错误消息,因此该错误与speech2text无关(尽管speech2text可能是错误标签的来源)
Java将其报告为错误(在使用ProcessBuilder调用了Speech2text并打印出流之后):
/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)
来自/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'
来自/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'
来自/Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/bin/speech2text:11
来自/ usr / bin / speech2text:19:在`load'中
来自/ usr / bin / speech2text:19
但是,尝试在同一文件上手动运行命令实际上给了我这个:
错误:输入文件./chunk-abortion-test-audio-0.mp3具有ID3v2标签
/库/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_splitter.rb:59:in to_flac': failed to convert chunk: ./chunk-abortion-test-audio-0.mp3 with flac ./chunk-abortion-test-audio-0.mp3 (RuntimeError) from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:18:in
to_text'
来自/Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:17:in each' from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:17:in
to_text'
来自/Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/bin/speech2text:11
来自/ usr / bin / speech2text:19:在`load'中
来自/ usr / bin / speech2text:19
当然,这里具有讽刺意味的是,我实际上已经使用以下命令清除了id3v2标签的文件
在Mac终端上为id3v2 --delete-all
。所以发生了一些棘手的事情。
谁能暗示可能会发生什么?另外,鉴于Speech2text一年没有更新,我觉得人们必须使用一种更新的语音到文本解决方案。所以,如果那里有更好的东西,请告诉我。
干杯!
编辑-顺便说一句,如果有人感兴趣,则mp3文件源自使用ffmpeg剥离.flv文件。
最佳答案
现在这是两个单独的问题。我只能通过回避使用.mp3文件并改用.wav来解决ID3v2问题。 Java输出仍然是一个问题,因此我将其转移到一个新的Question上。