Probar Speech-to-Text

En esta guía se explica cómo ejecutar una prueba de Speech-to-Text con el servicio Vertex AI Speech de Google.

Antes de probar este ejemplo, sigue las instrucciones de configuración de Python que se indican en la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API de Python de Vertex AI.

  1. Crea un archivo de Python speech-to-text-test.py. Sustituye el valor image_uri_to_test por el URI de una imagen de origen, como se muestra a continuación:

    from google.cloud import speech
    
    def transcribe_gcs_audio(gcs_uri: str) -> speech.RecognizeResponse:
        client = speech.SpeechClient()
    
        audio = speech.RecognitionAudio(uri=gcs_uri)
        config = speech.RecognitionConfig(
            encoding=speech.RecognitionConfig.AudioEncoding.FLAC,
            sample_rate_hertz=16000,
            language_code="en-US", # Specify the language code (e.g., "en-US" for US English)
            # You can add more features here, e.g.:
            # enable_automatic_punctuation=True,
            # model="default" # or "latest_long", "phone_call", "video", "chirp" (v2 API)
        )
    
        # Performs synchronous speech recognition on the audio file
        response = client.recognize(config=config, audio=audio)
    
        # Print the transcription
        for result in response.results:
            print(f"Transcript: {result.alternatives[0].transcript}")
            if result.alternatives[0].confidence:
                print(f"Confidence: {result.alternatives[0].confidence:.2f}")
    
        return response
    
    if __name__ == "__main__":
        # Replace with the URI of your audio file in Google Cloud Storage
        audio_file_uri = "AUDIO_FILE_URI"
    
        print(f"Transcribing audio from: {audio_file_uri}")
        transcribe_gcs_audio(audio_file_uri)
    

    Haz los cambios siguientes:

    • AUDIO_FILE_URI: el URI de un archivo de audio "gs://your-bucket/your-image.png"
  2. Crea un Dockerfile:

    ROM python:3.9-slim
    
    WORKDIR /app
    
    COPY speech-to-text-test.py /app/
    
    # Install 'requests' for HTTP calls
    RUN pip install --no-cache-dir requests
    
    CMD ["python", "speech-to-text-test.py"]
    
  3. Compila la imagen de Docker de la aplicación Speech-to-Text:

    docker build -t speech-to-text-app .
    
  4. Sigue las instrucciones de Configurar Docker para hacer lo siguiente:

    1. Configurar Docker
    2. Crea un secreto y
    3. Sube la imagen a HaaS.
  5. Inicia sesión en el clúster de usuarios y genera su archivo kubeconfig con una identidad de usuario. Asegúrate de definir la ruta de kubeconfig como variable de entorno:

    export KUBECONFIG=${CLUSTER_KUBECONFIG_PATH}
    
  6. Crea un secreto de Kubernetes ejecutando el siguiente comando en tu terminal y pegando tu clave de API:

    kubectl create secret generic gcp-api-key-secret \
      --from-literal=GCP_API_KEY='PASTE_YOUR_API_KEY_HERE'
    

    Este comando crea un secreto llamado gcp-api-key-secret con una clave GCP_API_KEY.

  7. Aplica el manifiesto de Kubernetes:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: speech-to-text-test-job
    spec:
      template:
        spec:
          containers:
          - name: speech-to-text-test-container
            image: HARBOR_INSTANCE_URL/HARBOR_PROJECT/speech-to-text-app:latest # Your image path
            # Mount the API key from the secret into the container
            # as an environment variable named GCP_API_KEY.
            imagePullSecrets:
            - name: SECRET
            envFrom:
            - secretRef:
                name: gcp-api-key-secret
          restartPolicy: Never
      backoffLimit: 4
    
    

    Haz los cambios siguientes:

    • HARBOR_INSTANCE_URL: la URL de la instancia de Harbor.
    • HARBOR_PROJECT: el proyecto de Harbor.
    • SECRET: el nombre del secreto creado para almacenar las credenciales de Docker.
  8. Comprueba el estado del trabajo:

    kubectl get jobs/speech-to-text-test-job
    # It will show 0/1 completions, then 1/1 after it succeeds
    
  9. Una vez que se haya completado el trabajo, puedes ver el resultado en los registros del pod:

    kubectl logs -l job-name=speech-to-text-test-job