Package google.cloud.speech.v1p1beta1

Index

Voix

Service qui met en œuvre l'API Google Cloud Speech.

Reconnaissance

rpc Recognize(RecognizeRequest) returns (RecognizeResponse)

Effectue une reconnaissance vocale synchrone : recevez les résultats après que toutes les données audio ont été envoyées et traitées.

StreamingRecognize

rpc StreamingRecognize(StreamingRecognizeRequest) returns (StreamingRecognizeResponse)

Effectue une reconnaissance vocale en continu bidirectionnelle : recevez les résultats tout en envoyant les données audio. Cette méthode n'est disponible que via l'API gRPC (non REST).

RecognitionAudio

Contient des données audio dans l'encodage spécifié dans RecognitionConfig. Vous devez fournir la valeur content ou uri. Si vous n'en spécifiez aucune ou si vous spécifiez les deux, vous obtenez l'erreur google.rpc.Code.INVALID_ARGUMENT. Consultez la section Limites relatives au contenu.

Champs
Champ d'union audio_source. Correspond à la source audio, qui se présente sous la forme de contenu intégré ou d'un URI Cloud Storage. audio_source ne peut être qu'un des éléments suivants :
content

bytes

Les octets de données audio sont encodés comme spécifié dans RecognitionConfig. Remarque : Comme pour tous les champs d'octets, les tampons de protocole utilisent une représentation binaire pure, tandis que les représentations JSON sont encodées en base64.

RecognitionConfig

Fournit à l'outil de reconnaissance des informations qui spécifient comment traiter la requête.

Champs
encoding

AudioEncoding

Encodage des données audio envoyées dans tous les messages RecognitionAudio. Ce champ est facultatif pour les fichiers audio FLAC et WAV, mais obligatoire pour tous les autres formats audio. Pour plus d'informations, consultez la section AudioEncoding.

sample_rate_hertz

int32

Taux d'échantillonnage en hertz des données audio envoyées dans tous les messages RecognitionAudio. Les valeurs possibles sont comprises entre 8 000 et 48 000. La valeur optimale est 16 000. Pour de meilleurs résultats, définissez le taux d'échantillonnage de la source audio sur 16 000 Hz. Si ce n'est pas possible, utilisez le taux d'échantillonnage natif de la source audio (plutôt que d'effectuer un ré-échantillonnage). Ce champ est facultatif pour les fichiers audio FLAC et WAV, mais il est obligatoire pour tous les autres formats audio. Pour en savoir plus, consultez AudioEncoding.

audio_channel_count

int32

Nombre de canaux dans les données audio d'entrée. Ne définissez ce champ QUE pour la reconnaissance MULTICANAL. Les valeurs valides pour LINEAR16 et FLAC sont comprises entre 1 et 8. Les valeurs valides pour OGG_OPUS sont comprises entre 1 et 254 La valeur pour MULAW, AMR, AMR_WB et SPEEX_WITH_HEADER_BYTE doit être définie sur 1 pour être valide. Si elle est égale à 0 ou est omise, un seul canal (mono) est pris en compte. Remarque : nous ne reconnaissons que le premier canal par défaut. Pour effectuer une reconnaissance indépendante sur chaque canal, attribuez la valeur "true" au champ enable_separate_recognition_per_channel.

enable_separate_recognition_per_channel

bool

Ce paramètre doit être défini explicitement sur true et audio_channel_count supérieur à 1 pour que chaque canal soit reconnu séparément. Le résultat de la reconnaissance contiendra un champ channel_tag indiquant le canal auquel il appartient. Si la valeur est différente de "true", nous ne reconnaîtrons que le premier canal. La requête vous est également facturée de façon cumulative pour tous les canaux reconnus : (audio_channel_count multiplié par la longueur de l'audio).

language_code

string

Obligatoire. Langue de l'audio fourni en tant que tag de langue BCP-47. Exemple : "en-US". Consultez la section Langues acceptées pour obtenir la liste des codes de langue actuellement compatibles.

enable_automatic_punctuation

bool

Si le champ est défini sur "true", ajoute un signe de ponctuation aux hypothèses de résultat de la reconnaissance. Cette fonctionnalité n'est disponible que pour certaines langues. La définition de ce champ pour d'autres langues n'a aucun effet. La valeur "false" par défaut n'ajoute pas de signe de ponctuation aux hypothèses de résultat.

diarization_config

SpeakerDiarizationConfig

Configurez l'identification des locuteurs et définissez des paramètres supplémentaires pour adapter l'identification à votre application. Remarque : Lorsque cette option est activée, tous les mots du début de l'audio sont envoyés comme première alternative dans chaque réponse STREAMING consécutive. Cela permet d'améliorer nos tags de locuteurs car nos modèles apprennent à identifier les locuteurs dans la conversation au fil du temps. Pour les requêtes non diffusées en continu, les résultats de l'identification ne seront fournis que dans l'alternative supérieure du résultat SpeechRecognitionResult FINAL.

model

string

Modèle à sélectionner pour la requête donnée. Sélectionnez le modèle le mieux adapté à votre domaine pour obtenir de meilleurs résultats. Si aucun modèle n'est explicitement spécifié, nous en sélectionnons automatiquement un en fonction des paramètres du champ RecognitionConfig.

Modèle Description

default

Idéal pour les données audio qui ne font pas partie des modèles spécifiques, telles que des données audio de longue durée. Il est préférable d'utiliser un son haute-fidélité, enregistré à un taux d'échantillonnage de 16 kHz ou plus.

AudioEncoding

L'encodage des données audio envoyées dans la requête.

Tous les encodages n'acceptent qu'un seul canal (mono) audio, sauf si les champs audio_channel_count et enable_separate_recognition_per_channel sont définis.

Pour des résultats optimaux, la source audio doit être enregistrée et transmise grâce à un encodage sans perte (FLAC ou LINEAR16). La précision de la reconnaissance vocale peut être réduite si vous enregistrez ou transmettez des données audio à l'aide de codecs induisant une perte, notamment en présence de bruits de fond. Les codecs MULAW, AMR, AMR_WB, OGG_OPUS, SPEEX_WITH_HEADER_BYTE et MP3 sont des exemples de codecs induisant une perte.

Les fichiers audio FLAC et WAV comprennent un en-tête décrivant le contenu audio inclus. Vous pouvez demander une reconnaissance pour les fichiers WAV qui contiennent des données audio encodées au format LINEAR16 ou MULAW. Si vous envoyez le format de fichier audio FLAC ou WAV dans votre requête, vous n'avez pas besoin de spécifier un AudioEncoding ; le format d'encodage audio est déterminé à partir de l'en-tête du fichier. Si vous spécifiez une valeur AudioEncoding lorsque vous envoyez des données audio FLAC ou WAV, la configuration de codage doit correspondre au codage décrit dans l'en-tête audio. Sinon, la requête renvoie un code d'erreur google.rpc.Code.INVALID_ARGUMENT.

Enums
ENCODING_UNSPECIFIED Non spécifié.
LINEAR16 Échantillons little-endian de 16 bits signés et non compressés (LPCM).
FLAC L'encodage FLAC (Free Lossless Audio Codec, codec audio sans perte gratuit) est recommandé du fait de son absence de perte. Ainsi, la reconnaissance n'est pas compromise et ne nécessite qu'environ la moitié de la bande passante par rapport à l'encodage LINEAR16. L'encodage de flux FLAC accepte les échantillons 16 bits et 24 bits. Il n'est toutefois pas compatible avec tous les champs de STREAMINFO.
MULAW Échantillons de 8 bits compressant des échantillons audio 14 bits qui utilisent la norme G.711 PCMU/MULAW.
OGG_OPUS Trames audio encodées au format Opus dans un conteneur Ogg (OggOpus). La valeur sample_rate_hertz doit être définie sur 8 000, 12 000, 16 000, 24 000 ou 48 000.
SPEEX_WITH_HEADER_BYTE Bien que l'utilisation d'encodages avec perte ne soit pas recommandée, OGG_OPUS est largement privilégié par rapport à Speex lorsqu'un encodage à très faible débit est requis. L'encodage Speex accepté par l'API Cloud Speech comporte un octet d'en-tête dans chaque bloc, comme dans le type MIME audio/x-speex-with-header-byte. Il s'agit d'une variante de l'encodage Speex RTP défini dans le RFC 5574. Le flux est une séquence de blocs qui correspondent chacun à un paquet RTP. Chaque bloc commence par un octet qui contient sa longueur exprimée en octets, suivie d'une ou de plusieurs trames de données Speex complétées jusqu'à atteindre un nombre entier d'octets, comme spécifié dans le RFC 5574. En d'autres termes, chaque en-tête RTP est remplacé par un octet unique contenant la longueur du bloc. Seul l'encodage Speex large bande est accepté. La valeur sample_rate_hertz doit être de 16 000.

RecognizeRequest

Message de premier niveau envoyé par le client pour la méthode Recognize.

Champs
config

RecognitionConfig

Obligatoire. Fournit à l'outil de reconnaissance des informations qui spécifient comment traiter la requête.

audio

RecognitionAudio

Obligatoire. Données audio à reconnaître.

RecognizeResponse

Le seul message renvoyé au client par la méthode Recognize. Il fournit le résultat sous la forme de zéro ou davantage de messages séquentiels SpeechRecognitionResult.

Champs
results[]

SpeechRecognitionResult

Liste séquentielle des résultats de transcription correspondant à des parties séquentielles de l'audio.

SpeakerDiarizationConfig

Configuration permettant d'activer l'identification des locuteurs.

Champs
enable_speaker_diarization

bool

Si le champ est défini sur "true", cela active la détection du locuteur pour chaque mot reconnu dans la première alternative au résultat de la reconnaissance à l'aide d'un speaker_tag fourni dans WordInfo.

min_speaker_count

int32

Nombre minimal de locuteurs dans la conversation. Cette plage vous offre plus de flexibilité en permettant au système de déterminer automatiquement le nombre approprié de locuteurs. Si ce champ n'est pas défini, la valeur par défaut est "2".

max_speaker_count

int32

Nombre maximal de locuteurs dans la conversation. Cette plage vous offre plus de flexibilité en permettant au système de déterminer automatiquement le nombre approprié de locuteurs. Si ce champ n'est pas spécifié, la valeur par défaut est 6.

SpeechRecognitionAlternative

Hypothèses alternatives (liste des n meilleures)

Champs
transcript

string

Texte de transcription représentant les mots prononcés par l'utilisateur.

confidence

float

Estimation de fiabilité comprise entre 0,0 et 1,0. Un nombre élevé indique une plus grande probabilité estimée que les mots reconnus soient corrects. Ce champ n'est défini que pour la première alternative d'un résultat n'étant pas sous forme de flux, ou d'un résultat de flux dans lequel is_final=true. La précision de ce champ n'est pas garantie. Les utilisateurs ne devraient pas s'attendre à ce qu'il soit toujours fourni. La valeur par défaut de 0,0 est une valeur sentinelle indiquant que la valeur confidence n'a pas été définie.

words[]

WordInfo

Liste d'informations spécifiques au mot pour chaque mot reconnu. Remarque : Lorsque enable_speaker_diarization est défini sur "true", tous les mots sont visibles depuis le début de l'audio.

SpeechRecognitionResult

Résultat de reconnaissance vocale correspondant à une partie des données audio.

Champs
alternatives[]

SpeechRecognitionAlternative

Peut contenir une ou plusieurs hypothèses de reconnaissance (jusqu'au nombre maximal spécifié dans max_alternatives). Ces alternatives sont classées par ordre de précision, la première étant la plus probable, selon le classement de l'outil de reconnaissance.

channel_tag

int32

Avec des données audio multicanaux, il s'agit du numéro de canal correspondant au résultat reconnu pour les données audio provenant de ce canal. Si audio_channel_count = N, les valeurs de sortie peuvent aller de "1" à "N".

language_code

string

Uniquement en sortie. Le tag de langue BCP-47 dans ce résultat. Ce code de langue a été détecté comme ayant le plus de chances d'être parlé dans l'audio.

StreamingRecognitionConfig

Fournit à l'outil de reconnaissance des informations qui spécifient comment traiter la requête.

Champs
config

RecognitionConfig

Obligatoire. Fournit à l'outil de reconnaissance des informations qui spécifient comment traiter la requête.

StreamingRecognitionResult

Résultat de reconnaissance vocale correspondant à une partie des données audio en cours de traitement.

Champs
alternatives[]

SpeechRecognitionAlternative

Peut contenir une ou plusieurs hypothèses de reconnaissance (jusqu'au nombre maximal spécifié dans max_alternatives). Ces alternatives sont classées par ordre de précision, la première étant la plus probable, selon le classement de l'outil de reconnaissance.

is_final

bool

Si le champ est défini sur false, le résultat StreamingRecognitionResult constitue un élément provisoire susceptible de changer. S'il est défini sur true, c'est la dernière fois que le service vocal renvoie ce résultat StreamingRecognitionResult spécifique. L'outil de reconnaissance ne renverra plus aucune autre hypothèse pour cette partie de la transcription et de l'audio correspondant.

stability

float

Une estimation de la probabilité que l'outil de reconnaissance ne modifie pas sa supposition relative au résultat provisoire. Les valeurs s'étendent de 0,0 (complètement instable) à 1,0 (complètement stable). Ce champ n'est fourni que pour les résultats provisoires (is_final=false). La valeur par défaut de 0.0 est une valeur sentinelle indiquant que la stabilité stability n'a pas été définie.

result_end_time

Duration

Décalage temporel de la fin de ce résultat par rapport au début de l'audio.

channel_tag

int32

Avec des données audio multicanaux, il s'agit du numéro de canal correspondant au résultat reconnu pour les données audio provenant de ce canal. Si audio_channel_count = N, les valeurs de sortie peuvent aller de "1" à "N".

language_code

string

Uniquement en sortie. Le tag de langue BCP-47 dans ce résultat. Ce code de langue a été détecté comme ayant le plus de chances d'être parlé dans l'audio.

StreamingRecognizeRequest

Message de premier niveau envoyé par le client pour la méthode StreamingRecognize. Plusieurs messages StreamingRecognizeRequest sont envoyés. Le premier message doit contenir un message streaming_config et ne doit pas contenir de données audio_content. Tous les messages suivants doivent contenir des données audio_content et pas de message streaming_config.

Champs
Champ d'union streaming_request. Requête de flux, qui correspond à une configuration de flux ou à du contenu audio. streaming_request ne peut être qu'un des éléments suivants :
streaming_config

StreamingRecognitionConfig

Fournit à l'outil de reconnaissance des informations qui spécifient comment traiter la requête. Le premier message StreamingRecognizeRequest doit contenir un message streaming_config.

audio_content

bytes

Données audio à reconnaître. Des blocs séquentiels de données audio sont envoyés dans des messages StreamingRecognizeRequest séquentiels. Le premier message StreamingRecognizeRequest ne doit pas contenir de données audio_content et tous les messages StreamingRecognizeRequest suivants doivent contenir des données audio_content. Les octets de données audio doivent être encodés comme spécifié dans RecognitionConfig. Remarque : comme pour tous les champs d'octets, les tampons de protocole utilisent une représentation binaire pure (sans encodage base64). Consultez la section Limites relatives au contenu.

StreamingRecognizeResponse

StreamingRecognizeResponse est le seul message renvoyé au client par StreamingRecognize. Une série de zéro messages StreamingRecognizeResponse ou plus est renvoyée au client. S'il n'y a pas d'audio reconnaissable, et que le champ single_utterance est défini sur "false", aucun message n'est retransmis au client.

Voici un exemple de série de dix StreamingRecognizeResponse pouvant être renvoyées lors du traitement du contenu audio :

  1. results { alternatives { transcript: "tube" } stability: 0.01 }

  2. results { alternatives { transcript: "to be a" } stability: 0.01 }

  3. results { alternatives { transcript: "to be" } stability: 0.9 } results { alternatives { transcript: " or not to be" } stability: 0.01 }

  4. results { alternatives { transcript: "to be or not to be" confidence: 0.92 } alternatives { transcript: "to bee or not to bee" } is_final: true }

  5. results { alternatives { transcript: " that's" } stability: 0.01 }

  6. results { alternatives { transcript: " that is" } stability: 0.9 } results { alternatives { transcript: " the question" } stability: 0.01 }

  7. results { alternatives { transcript: " that is the question" confidence: 0.98 } alternatives { transcript: " that was the question" } is_final: true }

Remarques :

  • Parmi les réponses ci-dessus, seules les lignes 4 et 7 contiennent des résultats finaux, indiqués par is_final: true. En combinant ces réponses, nous obtenons l'intégralité de la transcription : "to be or not to be that is the question" ("être ou ne pas être, telle est la question").

  • Les autres contiennent des results intermédiaires. Les réponses n° 3 et 6 contiennent deux results intermédiaires : la première partie présente une grande stabilité et est moins susceptible de changer. La deuxième partie présente une faible stabilité et est très susceptible de changer. Les concepteurs d'interface utilisateur peuvent choisir de n'afficher que des champs results de stabilité élevée.

  • Les valeurs stability et confidence spécifiques indiquées ci-dessus ne sont données qu'à titre d'exemple. Les valeurs réelles peuvent varier.

  • Dans chaque réponse, un seul de ces champs sera défini : error, speech_event_type ou un ou plusieurs results (répétés).

Champs
error

Status

Si ce champ est défini, il renvoie un message google.rpc.Status qui spécifie l'erreur associée à l'opération.

results[]

StreamingRecognitionResult

Cette liste répétée contient zéro résultats ou plus, correspondant à des parties consécutives de l'audio en cours de traitement. Elle contient zéro ou un résultat is_final=true (la partie nouvellement configurée), suivi de zéro ou plusieurs résultats is_final=false (les résultats intermédiaires).

speech_event_type

SpeechEventType

Indique le type d'événement de discours.

SpeechEventType

Indique le type d'événement de discours.

Énumérations (Enums)
SPEECH_EVENT_UNSPECIFIED Aucun événement de discours spécifié.
END_OF_SINGLE_UTTERANCE Cet événement indique que le serveur a détecté la fin de l'énoncé de l'utilisateur et ne s'attend plus à aucune entrée vocale. Le serveur ne traite donc pas de nouvelles données audio (bien qu'il puisse par la suite renvoyer des résultats supplémentaires). Le client doit arrêter d'envoyer des données audio, interrompre à moitié la connexion gRPC, et attendre les résultats supplémentaires jusqu'à ce que le serveur stoppe cette connexion. Cet événement n'est envoyé que si le champ single_utterance est défini sur true et n'est pas utilisé par ailleurs.

WordInfo

Informations spécifiques au mot pour les mots reconnus.

Champs
start_time

Duration

Décalage temporel relatif au début des données audio et correspondant au début du mot prononcé. Ce champ n'est défini que si enable_word_time_offsets=true, et uniquement dans la première hypothèse. Il s'agit d'une fonctionnalité expérimentale. La précision du décalage temporel peut varier.

end_time

Duration

Décalage temporel relatif au début des données audio et correspondant à la fin du mot prononcé. Ce champ n'est défini que si enable_word_time_offsets=true, et uniquement dans la première hypothèse. Il s'agit d'une fonctionnalité expérimentale. La précision du décalage temporel peut varier.

word

string

Mot correspondant à cet ensemble d'informations.

speaker_tag

int32

Uniquement en sortie. Une valeur entière distincte est attribuée à chaque locuteur de l'audio. Ce champ spécifie lequel de ces locuteurs a été détecté pour avoir prononcé ce mot. La valeur est comprise entre "1" et "diarization_speaker_count". La valeur speaker_tag est définie lorsque enable_speaker_diarization = "true", et uniquement dans la première alternative.