【发布时间】:2018-11-14 19:43:31
【问题描述】:
我正在尝试从从 youtube 下载的 mp4 媒体文件中提取文本。由于我在使用谷歌云平台,所以想尝试一下谷歌云语音。
在所有安装和配置之后,我复制了以下代码 sn -p 开始使用:
with io.open(file_name, 'rb') as audio_file:
content = audio_file.read()
audio = types.RecognitionAudio(content=content)
config = types.RecognitionConfig(encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=16000, language_code='en-US')
response = client.long_running_recognize(config, audio)
但我收到以下关于文件大小的错误:
InvalidArgument: 400 内嵌音频超出持续时间限制。请使用一个 GCS URI。
然后我读到我应该将流用于大型媒体文件。所以,我尝试了以下代码sn-p:
with io.open(file_name, 'rb') as audio_file:
content = audio_file.read()
#In practice, stream should be a generator yielding chunks of audio data.
stream = [content]
requests = (types.StreamingRecognizeRequest(audio_content=chunk)for chunk in stream)
config = types.RecognitionConfig(encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,sample_rate_hertz=16000,language_code='en-US')
streaming_config = types.StreamingRecognitionConfig(config=config)
responses = client.streaming_recognize(streaming_config, requests)
但我仍然收到以下错误:
InvalidArgument:400 无效的音频内容:太长。
那么,任何人都可以建议一种方法来转录 mp4 文件并提取文本。我对非常大的媒体文件没有任何复杂的要求。媒体文件最长可达 10-15 分钟。谢谢
【问题讨论】:
标签: google-cloud-platform speech-recognition speech-to-text google-speech-api google-cloud-speech