3 votes

SpeechContext n'a pas de champ "boost".

J'utilise l'api de google cloud pour la synthèse vocale, je voulais ajouter des phrases contextuelles. Selon google docs le contexte de la parole a aussi un champ boost que je n'arrive pas à paramétrer.

J'ai remplacé speech_v1p1beta1 par speech_v1 et j'ai codé comme suit :

    config = speech.RecognitionConfig(
    encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,

    sample_rate_hertz=8000,
    language_code=first_lang,
    #alternative_language_codes=[second_lang],
    audio_channel_count=1,
    enable_separate_recognition_per_channel=False,
    #metadata=metadata,
    max_alternatives=5,
    # enable_word_confidence=True,

    speech_contexts=[{'phrases':['sfs'],'boost':15}]

    # speech_contexts=[speech.SpeechContext(
    #         phrases=['life insurance'],boost=15            
    #         )
    #         ]
    )

Je reçois l'erreur suivante :

  File "convert-wav-beta.py", line 165, in <module>
    transcript , confidence = google_transcribe(audio_file_name)
  File "convert-wav-beta.py", line 106, in google_transcribe
    speech_contexts=[{'phrases':['sfs'],'boost':15}]
  File "/env/lib/python3.5/site-packages/google/protobuf/internal/python_message.py", line 528, in init
    copy.add(**val)
  File "/env/lib/python3.5/site-packages/google/protobuf/internal/containers.py", line 376, in add
    new_element = self._message_descriptor._concrete_class(**kwargs)
  File "/env/lib/python3.5/site-packages/google/protobuf/internal/python_message.py", line 509, in init
    field = _GetFieldByName(message_descriptor, field_name)
  File "/env/lib/python3.5/site-packages/google/protobuf/internal/python_message.py", line 573, in _GetFieldByName
    (message_descriptor.name, field_name))
ValueError: Protocol message SpeechContext has no "boost" field.```

2voto

Anurag Points 51

J'ai résolu ce problème en mettant à jour la bibliothèque bêta de mon système. J'ai fait cela en copiant le code de github code by google.

1voto

Il semble que vous utilisiez RecognitionConfig du paquet "speech", et non ". speech_v1p1beta1 ". Les types et les enums doivent également être importés du paquet speech_v1p1beta1 si vous utilisez les fonctionnalités de la version bêta. Vos déclarations d'importation doivent ressembler à ceci

from google.cloud import speech_v1p1beta1
from google.cloud.speech_v1p1beta1 import enums
from google.cloud.speech_v1p1beta1 import types

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X