Événements de l'activité Voice et délais d'inactivité

Les événements d'activité Voice indiquent à quel moment le début ou la fin de la voix a été détecté dans un flux. Les événements sont envoyés en temps réel tels qu'ils sont détectés par Speech-to-Text. Les événements d'activité Voice peuvent être utiles pour développer des applications qui reposent sur la détection automatique du moment où un utilisateur a commencé ou terminé de parler. Speech-to-Text peut également être configuré pour fermer automatiquement le flux en fonction de l'activité Voice.

Les événements d'activité Voice ne sont disponibles que pour les requêtes gRPC StreamingRecognize.

Activer les événements d'activité Voice

Vous pouvez activer la réception des réponses d'activité Voice en définissant l'option enable_voice_activity_events sur "true" sous le message streaming_features.

Types d'événements d'activité Voice

Les événements d'activité Voice sont généralement renvoyés en temps réel, car Speech-to-Text détecte le démarrage ou l'arrêt de la parole pendant le flux. Ils sont généralement renvoyés avant les résultats de transcription pour le segment de parole correspondant. Des événements d'activité vocale peuvent être envoyés pour les données audio qui produisent des résultats de transcription vides.

Début de l'activité vocale

Envoyé lorsque Speech-to-Text détecte le début de l'activité vocale.

{
  "speechEventType": "SPEECH_ACTIVITY_BEGIN",
  "speechEventOffset": "1.070s"
}

Fin de l'activité vocale

Envoyé lorsque Speech-to-Text détecte la fin de l'activité vocale.

{
  "speechEventType": "SPEECH_ACTIVITY_END",
  "speechEventOffset": "1.070s"
}
Si le flux est fermé avant la fin de l'activité vocale, aucun événement SPEECH_ACTIVITY_END n'est envoyé.

Activer les délais avant expiration de l'activité Voice

Vous pouvez activer les délais avant expiration de l'activité Voice en définissant des valeurs sur le message voice_activity_timeout dans streaming_features. Les délais avant expiration de l'activité Voice doivent être supérieurs à 500 ms et inférieurs à 60 s. Les délais avant expiration de début et de fin de l'activité vocale peuvent être définis indépendamment.

Délai avant expiration du début de l'activité vocale

Lorsqu'un délai avant expiration du début de l'activité vocale est défini, Speech-to-Text ferme automatiquement le flux si la voix n'a pas commencé avant le délai d'expiration. Une fois qu'un événement SPEECH_ACTIVITY_START a été détecté et renvoyé, le délai avant expiration est annulé pour la durée du flux. Cette fonctionnalité est utile pour les applications qui s'attendent à ce qu'un utilisateur commence à parler au cours d'une période donnée.

Délai avant expiration de la fin de l'activité vocale

Lorsqu'un délai avant expiration de la fin de l'activité vocale est défini, Speech-to-Text ferme automatiquement le flux si aucune autre voix n'est détectée dans le délai avant expiration d'un événement SPEECH_ACTIVITY_END. Une fois qu'un événement SPEECH_ACTIVITY_START a été détecté et renvoyé, le délai avant expiration est annulé et redémarre une fois qu'un événement SPEECH_ACTIVITY_END est envoyé.

Mesure temporelle des délais avant expiration

Le temps écoulé est mesuré en octets de données audio envoyées dans les requêtes transmises à Speech-to-Text, et non en fonction de la durée du serveur. Cela permet de préserver la précision lors des variations de transmission de flux. L'envoi de fragments audio très volumineux dans les requêtes ou l'envoi très rapide de requêtes réduisent la précision de la mesure des délais avant expiration. Remarque : La taille des fragments audio est limitée à 15 360 octets par requête.