如何识别音频文件的AudioEncoding和SampleRateHertz

时间:2018-10-25 14:42:36

标签: java google-cloud-platform speech-to-text

我正在研究Google云语音转文本示例。 我从此链接GoogleCloudPlatform speech to text sample中提取了一个示例 我提到了Quickstart: Using Client Libraries 该示例中给出的示例文件可以正常工作。它给出了该音频文件的文本。 但是,如果我提供自己的音频文件,它将不会返回任何内容。

云请求包括音频文件,AudioEncoding和SampleRateHertz。 问题可能出在我自己的音频文件的AudioEncoding和SampleRateHertz中。

如何识别音频文件的AudioEncoding和SampleRateHertz?

1 个答案:

答案 0 :(得分:1)

AudioEncoding的Java枚举具有以下可能的值:

AudioEncoding.AMR-> .awb / .3gp文件

AudioEncoding.AMR_WB-> .awb / .3gp文件

AudioEncoding.FLAC-> .flac 文件

AudioEncoding.LINEAR16-> .wav 文件

AudioEncoding.MULAW-> .wav 文件

AudioEncoding.OGG_OPUS-> .ogg / .opus 文件

AudioEncoding.SPEEX_WITH_HEADER_BYTE->不知道,也许是 .speex

因此,您可以通过文件扩展名进行初步猜测,对于SampleRateHertz,您可以使用类似Tika by Apache的工具。这将为 commercial_stereo.wav 输出以下内容:

Content-Length: 6305632
Content-Type: audio/vnd.wave
X-Parsed-By: org.apache.tika.parser.DefaultParser
X-Parsed-By: org.apache.tika.parser.audio.AudioParser
X-TIKA:digest:MD5: 7e3e8837273e8bb143533894926f7da3
X-TIKA:digest:SHA256: 98fac004fb662ad8f720e680c81e3b4c9dea20190f5d1d908cece2cd6b30f01e
bits: 16
channels: 2
encoding: PCM_SIGNED
resourceName: commercial_stereo.wav
samplerate: 44100.0
xmpDM:audioSampleRate: 44100
xmpDM:audioSampleType: 16Int