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

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

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

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

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

最佳答案

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

关于java - 如何识别音频文件的AudioEncoding和SampleRateHertz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52992047/

相关文章:

JavaFX 从选项卡获取元素

java - Oracle ojdbc 驱动程序返回 NUMBER 类型列中整数值的浮点结果

python - 将实体在 Python Cloud Datastore 上持续变慢

kubernetes - 带有Google永久性磁盘的小型Kubernetes卷

安卓的东西 :Use Speech to text in Raspberry Pi 3 using android things

android - Flutter:Google Speech-To-Text API始终返回null

javax.net.ssl.SSLHandshakeException?

java - SOAP 的 WSDL 和 REST 的 WSDL 以及基于 JSON 的 REST

google-cloud-platform - Stackdriver Trace 与 Google Cloud Run

c# - 如何在 Windows 10 UWP 中正确实现语音识别