【问题标题】:Converting mp3 to LINEAR_16 or FLAC format for google cloud speech将 mp3 转换为 LINEAR_16 或 FLAC 格式以用于谷歌云语音
【发布时间】:2017-11-13 23:16:04
【问题描述】:

我想通过 Google 的 Cloud Speech API [reference] 运行 mp3 文件 - 但只是每个音频文件的前 15 秒。我正在使用 JavaZoom 建议的导入的 jlayer、mp3spi 和 tritonus 库在 Scala 中工作。到目前为止,我的代码如下所示:

val in = AudioSystem.getAudioInputStream(new URL("mySong.mp3"))
  val baseFormat = in.getFormat
  val decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
    16000,
    16,
    baseFormat.getChannels,
    baseFormat.getChannels * 2,
    16000,
    false)

  val audioInputStream = AudioSystem.getAudioInputStream(decodedFormat, in)
  val buffer = new Array[Byte](16000*4*15)
  var i = 0
  while (audioInputStream.available() > 0) {
    i += audioInputStream.read(buffer)
  }

  audioInputStream.close()
  in.close()

 // pass this to API request:
    lazy val recognitionConfig: RecognitionConfig = RecognitionConfig.newBuilder
      .setEncoding(AudioEncoding.LINEAR16)
      .setLanguageCode("en-US")
      .setSampleRateHertz(16000)
      .build

    val request = RecognizeRequest.newBuilder()
      .setAudio(RecognitionAudio.newBuilder().setContent(ByteString.copyFrom(buffer)).build())
      .setConfig(recognitionConfig)
      .build()

但是,当我打印出 ByteString 复制缓冲区的值时,它只有 0,并且 API 调用什么也不返回。关于我做错了什么的任何想法?这是我第一次在 Java/Scala 中处理音频,所以我可能会遗漏一些明显的东西......

【问题讨论】:

    标签: java scala google-cloud-platform codec google-cloud-speech


    【解决方案1】:

    我遇到了同样的问题。如果音频无法理解或以某种格式编码但未正确解码,以及其他细节,例如音频文件不能是立体声的,它需要是单声道的。 所以我首先使用 ffmpeg 模块将音频从 .mp3 转换为 .flac,如下所示(在 python 中 - 你需要找到它的 scala 版本):

    # turn the video into audio
    ff = ffmpy.FFmpeg(inputs={input_file_path: None}, outputs={output_file_path: '-y -vn -acodec flac -ar 16000 -ac 1'})
    ff.run()
    

    input_file_pathout_file_path字符串,其中包含输入和输出音频文件位置的路径。注意:您可以使用play命令测试输出音频文件是否转换成功。

    完成上述操作后,您现在可以改用AudioFormat.Encoding.FLACAudioEncoding.FLAC

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 2013-07-12
      • 2017-07-11
      相关资源
      最近更新 更多