Envoyer une requête de transcription à la reconnaissance vocale sur site

Prérequis

  1. Suivez toutes les étapes requises dans le guide de démarrage rapide Avant de commencer.
  2. Déployez l'API.
  3. Interrogez l'API pour vous assurer qu'elle fonctionne.

Installer des dépendances

  1. Clonez python-speech et remplacez le répertoire par celui de l'exemple.

    $ git clone https://github.com/googleapis/python-speech.git
    $ cd python-speech/samples/snippets
    
  2. Installez pip et virtualenv si vous ne l'avez pas déjà fait. Pour en savoir plus, consultez le guide de configuration de l'environnement de développement Python de Google Cloud Platform.

  3. Créez un objet virtualenv. Les exemples ci-dessous sont compatibles avec Python 2.7 et 3.4, ainsi que leurs versions ultérieures.

    $ virtualenv env
    $ source env/bin/activate
    
  4. Installez les dépendances nécessaires à l'exécution des exemples.

    $ pip install -r requirements.txt
    

Exemple de code

L'exemple de code ci-dessous utilise la bibliothèque google-cloud-speech. GitHub vous permet de parcourir le code source et de signaler des problèmes.

Transcrire un fichier audio

L'exemple de code ci-dessous permet de transcrire un fichier audio à l'aide d'une adresse IP publique ou d'une adresse IP au niveau du cluster. Pour en savoir plus sur les types d'adresses IP, consultez la documentation sur l'interrogation de l'API.

Adresse IP publique :

    # Using a Public IP
    $ python transcribe_onprem.py --file_path="../resources/two_channel_16k.wav" --api_endpoint=${PUBLIC_IP}:443

Adresse IP au niveau du cluster :

    # Using a cluster level IP
    $ kubectl port-forward -n $NAMESPACE $POD 10000:10000
    $ python transcribe_onprem.py --file_path="../resources/two_channel_16k.wav" --api_endpoint="0.0.0.0:10000"

Python

Pour vous authentifier auprès de Speech-to-Text, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

def transcribe_onprem(
    local_file_path: str,
    api_endpoint: str,
) -> speech_v1p1beta1.RecognizeResponse:
    """
    Transcribe a short audio file using synchronous speech recognition on-prem

    Args:
      local_file_path: The path to local audio file, e.g. /path/audio.wav
      api_endpoint: Endpoint to call for speech recognition, e.g. 0.0.0.0:10000

    Returns:
      The speech recognition response
          {
    """
    # api_endpoint = '0.0.0.0:10000'
    # local_file_path = '../resources/two_channel_16k.raw'

    # Create a gRPC channel to your server
    channel = grpc.insecure_channel(target=api_endpoint)
    transport = speech_v1p1beta1.services.speech.transports.SpeechGrpcTransport(
        channel=channel
    )

    client = speech_v1p1beta1.SpeechClient(transport=transport)

    # The language of the supplied audio
    language_code = "en-US"

    # Sample rate in Hertz of the audio data sent
    sample_rate_hertz = 16000

    # Encoding of audio data sent. This sample sets this explicitly.
    # This field is optional for FLAC and WAV audio formats.
    encoding = speech_v1p1beta1.RecognitionConfig.AudioEncoding.LINEAR16
    config = {
        "encoding": encoding,
        "language_code": language_code,
        "sample_rate_hertz": sample_rate_hertz,
    }
    with io.open(local_file_path, "rb") as f:
        content = f.read()
    audio = {"content": content}

    response = client.recognize(request={"config": config, "audio": audio})
    for result in response.results:
        # First alternative is the most probable result
        alternative = result.alternatives[0]
        print(f"Transcript: {alternative.transcript}")

    return response