Audio 音频文件不是';t正在被谷歌语音解析
这个问题是一个问题的后续 下面的代码片段几乎可以正常工作……它运行时没有错误,但为Audio 音频文件不是';t正在被谷歌语音解析,audio,google-cloud-platform,google-speech-api,Audio,Google Cloud Platform,Google Speech Api,这个问题是一个问题的后续 下面的代码片段几乎可以正常工作……它运行时没有错误,但为结果列表返回了无值。这意味着它正在访问文件(我想),但无法从中提取任何内容 我有一个文件,sample.wav,公开居住在这里: 我试图通过指定source\u uri='gs://speech\u proj\u files/sample.wav'来访问它 我不明白这为什么不起作用。我认为这不是权限问题。我的会话实例化得很好。代码会发出一秒钟的嘎嘎声,但总是没有结果。我如何调试这个??任何建议都将不胜感激 from
结果列表
返回了无
值。这意味着它正在访问文件(我想),但无法从中提取任何内容
我有一个文件,sample.wav
,公开居住在这里:
我试图通过指定source\u uri='gs://speech\u proj\u files/sample.wav'
来访问它
我不明白这为什么不起作用。我认为这不是权限问题。我的会话实例化得很好。代码会发出一秒钟的嘎嘎声,但总是没有结果。我如何调试这个??任何建议都将不胜感激
from google.cloud import speech
speech_client = speech.Client()
audio_sample = speech_client.sample(
content=None,
source_uri='gs://speech_proj_files/sample.wav',
encoding='LINEAR16',
sample_rate_hertz= 44100)
results_list = audio_sample.async_recognize(language_code='en-US')
啊,这是我最后一个问题的错。这是
async\u recognize
命令,而不是sync\u recognize
命令
该库有三个识别命令sync\u recognize
读取整个文件并返回结果。那可能就是你想要的。请删除字母“a”,然后重试
下面是一个执行此操作的Python程序示例:
仅供参考,以下是其他类型的摘要:
async\u recognize
启动一个长时间运行的服务器端操作来翻译整个文件。您可以进一步调用服务器,查看是否已完成操作.poll()
方法,完成后,可以通过操作.results
获取结果
第三种类型是
streaming\u recognize
,它在处理结果时不断向您发送结果。这对于您希望立即获得一些结果的长文件,或者如果您正在持续上传实时音频,可能非常有用。我终于找到了一些工作:
import time
from google.cloud import speech
speech_client = speech.Client()
sample = speech_client.sample(
content = None
, 'gs://speech_proj_files/sample.wav'
, encoding='LINEAR16'
, sample_rate= 44100
, 'languageCode': 'en-US'
)
retry_count = 100
operation = sample.async_recognize(language_code='en-US')
while retry_count > 0 and not operation.complete:
retry_count -= 1
time.sleep(10)
operation.poll() # API call
print(operation.complete)
print(operation.results[0].transcript)
print(operation.results[0].confidence)
for op in operation.results:
print op.transcript
然后像
for op in operation.results:
print op.transcript
嗯…我尝试了所有3种口味的脚本,但没有任何结果。不过我会在周一再试一次。谢谢由于音频文件的长度为15分钟,因此唯一有效的API是异步API。请注意,由于音频文件的长度为15分钟,因此无法在几秒钟内正确处理。至少需要几分钟才能完成。这是一个很好的观点……我可能不耐烦了。