почему enable_automatic_punctuation = true выдает ошибку в python 3 - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу получить транскрипцию слова с пунктуацией от google-speech-api. я использую питон 3 и

Я получаю эту ошибку, когда запускаю свой код, который является точно таким же примером кода из

https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/speech/cloud-client/beta_snippets.py.

я получаю ошибку

"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))

1 Ответ

0 голосов
/ 30 апреля 2018

Python API называет все опции, используя соглашение snake_case (строчные слова объединяются с подчеркиванием), поэтому требуемая опция называется enable_automatic_punctuation. Обратите внимание, что то же самое относится к опции language_code :

config = speech.types.RecognitionConfig(
    enable_automatic_punctuation=True,
    encoding=speech.enums.RecognitionConfig.AudioEncoding.LINEAR16,
    language_code='en-US',
    model='default')

Образец, на который вы ссылались, использовал имя snake_case.

Обратите внимание, что автоматическая пунктуация - это новая функция в более новой версии v1p1beta1 API, поэтому убедитесь, что вы импортируете правильный класс. Из справочного раздела API :

Новая бета-версия, написанная v1p1beta1, предназначена для предварительного просмотра будущих функций. Чтобы использовать это, вам нужно импортировать из google.cloud.speech_v1p1beta1 вместо google.cloud.speech.

И эта функция в будущем может быть удалена из бесплатного API. Поскольку документация v1p1beta1 для enableAutomaticPunctuation гласит:

В настоящее время предлагается в качестве экспериментальной услуги, бесплатной для всех пользователей. В будущем это может быть доступно исключительно в качестве премиум-функции.

...