1. Documentation
  2. Getting Started
  3. Tutorial del API endpoint para audios pre-grabados

Tutorial del API endpoint para audios pre-grabados

To read this in English, see Getting Started with Pre-recorded Audio.

En este tutorial aprenderás a transcribir automáticamente audios pre-grabados (pre-recorded) 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 ambas de estos idiomas.

Si te encuentras con alguna dificultad, no dudes en contactarnos! Contact Support.

Transcribe Audios pre-grabados

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 pre-grabados. 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.

  2. 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/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 todos los archivos de audio que vayas a usar estén en el directorio de tu proyecto.

  3. 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)
      # Abre el archivo
      with open(PATH_TO_FILE, 'rb') as audio:
        # Reemplazar el mimetype como sea necesario
        source = {'buffer': audio, 'mimetype': 'audio/mp3'}
        response = await dg_client.transcription.prerecorded(source, { 'language': 'es', 'punctuate': True })
        print(json.dumps(response, indent=4))
    
    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 fs = require('fs');
    const { Deepgram } = require('@deepgram/sdk');
    
    /** Tu clave de API Deepgram*/
    const deepgramApiKey = 'TU_CLAVE_API_DE_DEEPGRAM';
    
    /** Nombre y extenció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);
    
    /** Cargar el archivo al buffer */
    const fileBuffer = fs.readFileSync(pathToFile);
    
    deepgram.transcription.preRecorded({
      buffer: fileBuffer,
      mimetype: 'audio/mp3' // o el mimetype de tu archivo
    }, {
      language: es,
      punctuate: true
    })
    .then((transcription) => {
      console.log(transcription);
    })
    .catch((err) => {
      console.log(err);
    })
    

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

  4. Lanza el programa

    Ejecuta el programa desde el terminal:

    Python

    python deepgram_test.py
    

    Node.js

    node index.js
    
  5. Ver los resultados

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

Analizar la Respuesta del API

Cuando se termine de procesar, el archivó se devolverá una repuesta en formato JSON:

{
  "metadata":{
    "transaction_key":"drm25h...",
    "request_id":"306dae...",
    "sha256":"23a7d0...",
    "created":"2021-12-16T19:40:14.000Z",
    "duration":28.577938,
    "channels":1,
    "models":["35d5c885-fd84-44e3-82fd-e4f8dba035d9"]
  },
  "results":{
    "channels":[
      {
        "alternatives":[
          {
            "transcript":"Cuentan que hace mucho mucho tiempo en el reino subterráneo donde no existe el mentira ni el dolor. Vivía una princesa que soñaba con el mundo de los humanos. Soñaba con el cielo azul, la brisa suave y el brillante sol.",
            "confidence":0.984375,
            "words":[
              {
                "word":"cuentan",
                "start":0.6985944,
                "end":1.1377108,
                "confidence":0.97265625,
                "punctuated_word":"Cuentan"
              },
              {
                "word":"que",
                "start":1.1377108,
                "end":1.2574699,
                "confidence":0.8886719,
                "punctuated_word":"que"
              },
              {
                "word":"hace",
                "start":1.2574699,
                "end":1.5369076,
                "confidence":0.9897461,
                "punctuated_word":"hace"
              },
              {
                "word":"mucho",
                "start":1.5369076,
                "end":2.0369077,
                "confidence":0.9711914,
                "punctuated_word":"mucho"
              },
              {
                "word":"mucho",
                "start":3.3332932,
                "end":3.6526506,
                "confidence":0.94384766,
                "punctuated_word":"mucho"
              },
              {
                "word":"tiempo",
                "start":3.6526506,
                "end":4.152651,
                "confidence":0.9868164,
                "punctuated_word":"tiempo"
              },
              {
                "word":"en",
                "start":6.7663856,
                "end":6.8861446,
                "confidence":0.9838867,
                "punctuated_word":"en"
              },
              {
                "word":"el",
                "start":6.8861446,
                "end":7.165582,
                "confidence":0.99072266,
                "punctuated_word":"el"
              },
              {
                "word":"reino",
                "start":7.165582,
                "end":7.4849396,
                "confidence":0.96240234,
                "punctuated_word":"reino"
              },
              {
                "word":"subterráneo",
                "start":7.4849396,
                "end":7.9849396,
                "confidence":0.9448242,
                "punctuated_word":"subterráneo"
              },
              ...
            ]
          }
        ]
      }
    ]
  }
}

En la respuesta se ven, por defecto, los siguientes datos:

  • transcript: La transcripción para el audio que se ha procesado.

  • confidence: Un número de coma flotante con valor entre 0 y 1 que refleja la calidad de la transcripción. Valores más grandes representan mayor fiabilidad estadística.

  • words: Un objecto que, junto con cada palabra (word) de la transcripción también proporciona las marcas de tiempo para el comienzo (start) y fin (end) de cada palabra y el valor de fiabilidad estadística (confidence) de cada palabra de la transcripción.

    A razón de que introdujimos la opción punctuate: true al método transcription.prerecorded, dentro de cada objeto de palabra se incluye un valor de punctuated_word, que representa un string en el cual se combina un posible signo de puntuación con la palabra correctamente modificada en cuanto a su capitalización.

Por defecto, Deepgram escoge el modelo estándar (general) que, es útil dado que este modelo es el que sirve para los usos cotidianos.

Pasos siguientes

Ahora que has logrado transcribir un audio pre-grabado, puedes aprender mas acerca de los productos 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 con un hablante específico, puedes introducir el parámetro diarize al método transcription.prerecorded que vimos en el ejemplos anteriores:

Python

        response = await dg_client.transcription.prerecorded(source, { 'language': 'es', 'punctuate': True, 'diarize': True })

Node.js

    deepgram.transcription.preRecorded({
      buffer: fileBuffer,
      mimetype: 'audio/mp3' // o el mimetype de tu archivo
    }, {
      language: es,
      punctuate: true,
      diarize: true
    })

Para aprender diferentes maneras de secarle mas provecho al API de Deepgram, échale una mirada a la documentación de los APIs 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 en vivo

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

FEEDBACK