Python 谷歌云语音到文本不为OGG&;提供输出;MP3文件
我试图在一堆超过10分钟长的音频文件上执行语音到文本转换。我不想因为直接上传wav文件而浪费云存储桶上的存储空间。因此,我使用Python 谷歌云语音到文本不为OGG&;提供输出;MP3文件,python,google-cloud-platform,ffmpeg,google-speech-api,google-cloud-speech,Python,Google Cloud Platform,Ffmpeg,Google Speech Api,Google Cloud Speech,我试图在一堆超过10分钟长的音频文件上执行语音到文本转换。我不想因为直接上传wav文件而浪费云存储桶上的存储空间。因此,我使用ffmpeg将文件转换为ogg或类似mp3的格式: ffmpeg-y-i audio.wav-ar 12000-r 16000 audio.mp3 ffmpeg-y-i audio.wav-ar 12000-r 16000 audio.ogg 出于测试目的,我在一个虚拟wav文件上运行了speech-to-text服务,它似乎可以工作,我得到了预期的文本。但由于某些原因,
ffmpeg
将文件转换为ogg或类似mp3的格式:
ffmpeg-y-i audio.wav-ar 12000-r 16000 audio.mp3
ffmpeg-y-i audio.wav-ar 12000-r 16000 audio.ogg
出于测试目的,我在一个虚拟wav文件上运行了speech-to-text服务,它似乎可以工作,我得到了预期的文本。但由于某些原因,当我使用ogg或mp3文件时,它没有检测到任何语音。我也不能让amr文件工作
我的代码:
def transcribe_gcs(gcs_uri):
client = speech.SpeechClient()
audio = speech.RecognitionAudio(uri=gcs_uri)
config = speech.RecognitionConfig(
encoding="OGG_OPUS", #replace with "LINEAR16" for wav, "OGG_OPUS" for ogg, "AMR" for amr
sample_rate_hertz=16000,
language_code="en-US",
)
print("starting operation")
operation = client.long_running_recognize(config=config, audio=audio)
response = operation.result()
print(response)
我已经正确设置了身份验证,所以这不是问题
当我在同一个音频上运行语音到文本服务,但使用ogg或mp3(我只是从mp3的配置中注释出编码设置)格式时,它不会给出响应,只是打印一个换行符并完成
我能做些什么来解决这个问题?使用Opus或FLAC
- Vorbis(OGG容器的默认音频格式)不受支持。看
- MP3编码是测试版功能,仅在v1p1beta1中可用。有关详细信息,请参阅
ffmpeg-i input.wav-vn output.flac
作品
如果文件空间非常重要,那么在OGG中使用Opus。它可以制作小文件大小和卓越的质量
ffmpeg-i input.wav-vn-c:libopus output.ogg
1.)能否运行ffmpeg-i audio.ogg
并检查编码是否为Vorbis?如果是Vorbis而不是Opus,ffmpeg没有正确地将其编码到.ogg。您可以尝试使用进行转换。2.)您是否正在使用speech_v1p1beta1
运行识别?不确定我正在运行的语音版本。是的,它是VORBIS1。您可以在脚本中检查导入方式(来自google.cloud import speech_v1p1beta1 as speech
),如果您导入v1p1beta1,它应该支持MP3。如果没有,它将不支持MP3。