Tutorial del API endpoint para transcribir en vivo

To read this in English, see Getting Started with Streaming Audio.

En este tutorial aprenderás a transcribir audios en vivo (streaming) usando los SDK de Deepgram. La transcripción se efectuará en español. Los SDKs de Deepgram funcionan en conjunto con el endpoint api.deepgram.com.

Antes de Comenzar

Antes de ejecutar el código, debes hacer ciertas cosas.

Regístrate con Deepgram

Antes de poder usar los productos de Deepgram es necesario que te registres con nosotros. Registrarse es gratis y te proporciona los siguientes beneficios:

  • $150 USD en créditos de Deepgram que te permite acceder a:
    • todos los modelos básicos
    • API endpoints para transcribir audios pre-grabados y audios en vivo
    • todas las funciones del API

Establece una Clave de API Deepgram

Para acceder al API de Deepgram tendrás que crear una clave de API Deepgram. Apunta tu clave de API en un lugar seguro, la necesitarás pronto.

Configura el Entorno

Nosotros te facilitamos scripts escritos en Python y Node.js suponiendo que ya tienes configurado un entorno de desarrollo en una o ambos de estos idiomas.

Si te encuentras con alguna dificultad, no dudes en contactarnos! Ponte en contacto con nuestro equipo de apoyo.

Transcribe Audios en vivo

En cuanto tengas tu clave API, podrás comenzar a transcribir audios automáticamente. Las instrucciones que siguen te ayudarán a crear un programa simple para transcribir audios en vivo. Te mostraremos como instalar el SDK de Deepgram, como usar tu propia clave de API en tu código, tanto como escribir y ejecutar el código.

  1. Escoge un archivo de audio

Baja nuestra muestra de audio, o graba una propia usando el micrófono de tu computador. Asegúrate que los archivos descargados estén en el directorio de tu proyecto.

  1. Instala el SDK de Deepgram

    Abre el terminal, desplázate al lugar en el disco donde quieres crear tu proyecto e instala el SDK de Deepgram.

    Python

    # Instala el SDK Python de Deepgram
    # https://github.com/deepgram/deepgram-python-sdk
    pip install deepgram-sdk

    Node.js

    # Lanza un programa nuevo
    npm init
    
    # Instala el SDK Node.js de Deepgram
    # https://github.com/deepgram/node-sdk
    npm install @deepgram/sdk

    Asegúrate de que los archivos estén en el directorio de tu proyecto.

  2. Escribe el código

    En el terminal, crea un nuevo archivo e introduce el código.

    Python

    Crea un nuevo archivo llamado deepgram_test.py en el directorio de tu proyecto. Introduce el código siguiente al archivo que creaste:

    from deepgram import Deepgram
    import asyncio, json
    
    # Tu clave de API Deepgram
    DEEPGRAM_API_KEY = 'TU_CLAVE_API_DE_DEEPGRAM'
    
    # Nombre y extención del archivo de audio que bajaste. (p.ej., sample.mp3)
    PATH_TO_FILE = 'NOMBRE_DEL_ARCHIVO_A_TRANSCRIBIR'
    
    async def main():
      # Lanzar el Deepgram SDK
      dg_client = Deepgram(DEEPGRAM_API_KEY)
    
      # Establecer una conexión websocket con Deepgram
      try:
        socket = await dg_client.transcription.live({ 'language': 'es', 'punctuate': True })
      except Exception as e:
        print(f'No se pudo abrir el web socket: {e}')
        return
    
      # Administrar el envío de audio al websocket
      async def process_audio(connection):
        # Abre el archivo
        with open(PATH_TO_FILE, 'rb') as audio:
          # Recorta el archivo que vas as enviar
          CHUNK_SIZE_BYTES = 8192
          CHUNK_RATE_SEC = 0.001
          chunk = audio.read(CHUNK_SIZE_BYTES)
          while chunk:
            connection.send(chunk)
            await asyncio.sleep(CHUNK_RATE_SEC)
            chunk = audio.read(CHUNK_SIZE_BYTES)
    
        # Pon en claro que hemos logrado mandar los datos
        await connection.finish()
    
      # Atender la conexión para asegurarnos que se haya cerrado
      socket.registerHandler(socket.event.CLOSE, lambda c: print(f'Conexión cerrada usando el script {c}.'))
    
      # Imprimir los objetos que llegan
      socket.registerHandler(socket.event.TRANSCRIPT_RECEIVED, print)
    
      #  Enviar el audio al websocket
      await process_audio(socket)
    
    asyncio.run(main())

    Node.js

    Crea un nuevo archivo llamado index.js en el directorio de tu proyecto. Introduce al archivo el código siguiente:

    const { Deepgram } = require("@deepgram/sdk");
    
    /** Tu clave de API Deepgram*/
    const deepgramApiKey = "TU_CLAVE_API_DE_DEEPGRAM";
    
    /** Nombre y extensión del archivo de audio que bajaste (p.ej., sample.mp3) */
    const pathToFile = "NOMBRE_DE_ARCHIVO_A_TRANSCRIBIR";
    
    /** Lanzar el SDK de Deepgram*/
    const deepgram = new Deepgram(deepgramApiKey);
    
    /** Establecer una conexión websocket con Deepgram */
    const deepgramSocket = deepgram.transcription.live({
    	language: es,
    	punctuate: true,
    });
    
    /** Atender la conexión para saber que se ha establecido. Empezar a mandar datos*/
    deepgramSocket.addListener("open", () => {
    	console.log("¡Conexión establecida!");
    
    	/** Agarrar el archivo de audio*/
    	const fs = require("fs");
    	const contents = fs.readFileSync(pathToFile);
    
    	/** Recortar el audio en fragmentos de 1000 bytes y mandarlos el audio al API de Deepgram */
    	const chunk_size = 1000;
    	for (i = 0; i < contents.length; i += chunk_size) {
    		const slice = contents.slice(i, i + chunk_size);
    		deepgramSocket.send(slice);
    	}
    
    	/** Cerrar la conexión websocket */
    	deepgramSocket.finish();
    });
    
    /** Atender la conexión para confirmar que se haya cerrado */
    deepgramSocket.addListener("close", () => {
    	console.log("Conexión cerrada.");
    });
    
    /**
     * Recibir los transcritos en base a las emisiones enviadas
     * grabarlas a la consola
     */
    deepgramSocket.addListener("transcriptReceived", (transcription) => {
    	console.log(transcription.data);
    });

    Asegúrate de reemplazar el string TU_CLAVE_DE_API_DEEPGRAM con tu verdadera clave de API Deepgram y no falles en reemplazar el string NOMBRE_DEL_ARCHIVO_A_TRANSCRIBIR con el nombre del archivo que bajaste.

  3. Lanza el programa

    Ejecuta el programa desde el terminal:

    Python

    python deepgram_test.py

    Node.js

    node index.js
  4. Ver los resultados

    Tus transcripciones figurarán en la consola para desarrolladores del navegador web que estés usando.

    Al analizar los resultados toma en cuenta que la transcripción en vivo devuelve una serie de transcripciones intermediarias antes de devolver una transcripción final. Si quieres saber más acerca de las transcripciones intermediarias, puede que te interese esta página: resultados intermediarios.

Pasos siguientes

Ahora que has aprendido a transcribir audios en vivo, puedes aprender más acerca de lo que puedes hacer con el API de Deepgram.

Personaliza las Transcripciones

Para personalizar las transcripciones que recibes, puedes configurar una gran variedad de parámetros de API de Deepgram.

Por ejemplo, si deseas usar la opción Diarization, que es la opción que te permite asociar cada palabra del transcrito a un hablante específico, puedes introducir el parámetro diarize al método transcription.live que vimos en el ejemplos anteriores.

Python

      socket = dg_client.transcription.live({ 'language': 'es', 'punctuate': True, 'diarize': True })

Node.js

const deepgramSocket = deepgram.transcription.live({
	language: es,
	punctuate: true,
	diarize: true,
});

Para personalizar las transcripciones que recibes, puedes configurar una gran variedad de parámetros de API de Deepgram.

Explora casos Prácticos

Ahora te sugerimos explorar las distintas maneras que hay de usar los productos de Deepgram para servir tus objetivos de negocio. Descubre más acerca de casos prácticos de Deepgram.

La transcripción automática de audios pre-grabados

Ya que has aprendido a transcribir audios en vivo, tal vez te gustaría ver como se pueden transcribir audios pre-grabados. Para saber más, visita la página Tutorial del API endpoint para audios pre-grabados.

Share your feedback

Thank you! Can you tell us what you liked about it? (Optional)

Thank you. What could we have done better? (Optional)

We may also want to contact you with updates or questions related to your feedback and our product. If don't mind, you can optionally leave your email address along with your comments.

Thank you!

We appreciate your response.