Prueba Speech-to-Text

En esta guía, se explica el proceso para ejecutar una prueba de Speech-to-Text con el servicio de voz de Vertex AI de Google.

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python que se encuentran en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Vertex AI para Python.

  1. Crea un archivo de Python speech-to-text-test.py. Reemplaza el valor image_uri_to_test por el URI de una imagen fuente, 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)
    

    Reemplaza lo siguiente:

    • AUDIO_FILE_URI: Es 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 para la aplicación de Speech-to-Text:

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

    1. Configura Docker.
    2. Crea un secreto.
    3. Sube la imagen a HaaS.
  5. Accede al clúster de usuario y genera su archivo kubeconfig con una identidad de usuario. Asegúrate de establecer la ruta de kubeconfig como una variable de entorno:

    export KUBECONFIG=${CLUSTER_KUBECONFIG_PATH}
    
  6. Ejecuta el siguiente comando en tu terminal y pega tu clave de API para crear un secreto de Kubernetes:

    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
    
    

    Reemplaza lo siguiente:

    • HARBOR_INSTANCE_URL: Es la URL de la instancia de Harbor.
    • HARBOR_PROJECT: Es el proyecto de Harbor.
    • SECRET: Es el nombre del secreto creado para almacenar las credenciales de Docker.
  8. Verifica 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 complete el trabajo, podrás ver el resultado en los registros del pod:

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