我希望从google-speech-api获得带有标点符号的单词成绩单。我正在使用python 3和
当我运行我的代码时出现此错误,这是与
完全相同的代码示例我收到错误
"ValueError: Protocol message RecognitionConfig has no "enableAutomaticPunctuation" field.
“。
我能做些什么来克服这一点。
def transcribe_file_with_auto_punctuation(path):
client = speech.SpeechClient()
with io.open(path, 'rb') as audio_file:
content = audio_file.read()
audio = speech.types.RecognitionAudio(content=content)
config = speech.types.RecognitionConfig(
enableAutomaticPunctuation=True,
encoding= speech.enums.RecognitionConfig.AudioEncoding.LINEAR16,
languageCode= 'en-US',
model= 'default')
response = client.recognize(config, audio)
for i, result in enumerate(response.results):
alternative = result.alternatives[0]
print('-' * 20)
print('First alternative of result {}'.format(i))
print('Transcript: {}'.format(alternative.transcript))
答案 0 :(得分:0)
Python API使用snake_case约定命名所有选项(使用下划线连接的小写单词),因此您想要的选项称为enable_automatic_punctuation
。请注意,这同样适用于language_code
option:
config = speech.types.RecognitionConfig(
enable_automatic_punctuation=True,
encoding=speech.enums.RecognitionConfig.AudioEncoding.LINEAR16,
language_code='en-US',
model='default')
您链接的示例确实使用了snake_case名称。
请注意,自动标点符号是API的较新v1p1beta1 release中的新功能,因此请确保导入正确的类。来自API Reference section:
提供了一个新的测试版,拼写为
v1p1beta1
,用于预览即将推出的功能。要使用此功能,您需要从google.cloud.speech_v1p1beta1
导入以代替google.cloud.speech
。
此功能可能在将来从免费API中删除。正如enableAutomaticPunctuation
状态的v1p1beta1文档:
目前作为实验服务提供,免费提供给所有用户。在未来,这可能仅作为高级功能提供。