Transcripción de audios
También los audios no interesan como fuentes de datos, pero la transcripción "manual" de una grabación de audio para convertirla en texto editable, aun en el caso de grabaciones cortas, lleva una cantidad ingente de tiempo. Posiblemente esta sea una de las razones, si no la de mayor peso, por la cual no es frecuente que los SEO utilicen este soporte como sistema de recogida de datos. Por suerte, actualmente disponemos de recursos para automatizar la transcripción de audio a texto de forma funcional y fiable, on-line y en local.
Hace tiempo que existen on-line recursos para realizar esta transformación, pero no nos garantizan satisfactoriamente la confidencialidad, y además pueden suponer costes económicos o limitaciones de algún tipo. La consecuencia es que recurrir a estos medios no siempre (pocas veces diría yo) pueden considerarse una opción real. Aquí es donde las opciones "en local" se vuelven herramientas de gran interés... Pero presentan ciertas complicaciones y algunas limitaciones.
La principal limitación es que algunas de ellas están pensadas precisamente para hacer posible el proceso inverso: convertir texto a audio, de modo que sea factible generar recuros de utilidad para implementar determinadas pautas DUA, pensadas para garantizar la accesibilidad de los contenidos, por ejemplo, a invidentes.
El uso de alternativas IA puede cubrir también ese tipo de necesidades. Un ejemplo de ello es la funcionalidad de conversoón a audio disponible en NotebookLM; pero en esta aplicación no contamos con herramientas de conversión audio-a-terxto y estamos hablando precisamente de un servicio-en-local.
Sí existen, no obstante, alternativas que corren en local y que son fiables en sus resultados, posibles en cuanto a exigencia de recursos de memoria y procesamiento y confiables en términos de garantía de confidencialidad. Esto último a consecuencia precisamente de correr-en-local.
No puedo afirmar que Whisper sea la única opción que cumpla estas condiciones, pero sí que las cumple y que funciona aceptablemente bien ante demandas reales, comprobadas personalmente. Cierto es que esta biblioteca necesita una instalación que no se resuelve únicamente con el consabido pip install, pero que tampoco conlleva una complejidad excesiva. En todo lo anterior me estoy refiriendo a Windows, donde se necesita, además, acceso a FFmpeg, lo que requeire la previa instalación de Chocolatey desde PowerShell.
No es que ese proceso resulte especialmente complicado ni arriesgado, pero no me responsabilizo de asesorate al respecto. Te recomiento que consultes el tema con quien consideres pertinente. Yo lo hice con la Web y con IA-Gemini; y he de decir que con éxito.
En esta entrada me limito a exponer el resultado en forma de script Python, de cuyo buen funcionamiento doy fe en un sistema no especialmente potente ni dispone de GPU. El que sigue es el script resultante de pelearme durante un rato con IA-Gemini 3.
import whisper
import os
def transcribir_a_unidad_d_y_pantalla(ruta_audio_input):
# 1. Configuración de nombres y rutas
nombre_archivo = os.path.basename(ruta_audio_input)
nombre_sin_extension = os.path.splitext(nombre_archivo)[0]
ruta_salida_txt = f"D:/{nombre_sin_extension}_transcripcion.txt"
try:
if not os.path.exists(ruta_audio_input):
print(f"❌ Error: No se encontró el archivo en: {ruta_audio_input}")
return
# 2. Carga del modelo
print("Cargando modelo Whisper...")
modelo = whisper.load_model("base")
# 3. Transcripción
print(f"Procesando: {nombre_archivo}...")
resultado = modelo.transcribe(ruta_audio_input, language="es", fp16=False)
texto_final = resultado["text"]
# 4. Mostrar por pantalla (NUEVO)
print("\n" + "="*50)
print("TEXTO TRANSCRITO:")
print("="*50)
print(texto_final)
print("="*50 + "\n")
# 5. Guardar en Unidad D:
if os.path.exists("D:/"): #Si no dispones de esta unidad o deseas utilizar otra dirección, debes especificarlo AQUÍ
with open(ruta_salida_txt, "w", encoding="utf-8") as f:
f.write(texto_final)
print(f"✅ Archivo guardado con éxito en: {ruta_salida_txt}")
else:
print("❌ Error: La unidad D: no está disponible.")
except Exception as e:
print(f"❌ Ocurrió un error inesperado: {e}")
# --- VARIABLE DE RUTA ---
mi_variable_ruta = "AQUÍ LA RUTA DE TU AUDIO" #No te olvides concretar la ruta de tu audio
if __name__ == "__main__":
transcribir_a_unidad_d_y_pantalla(mi_variable_ruta)
Este script bien merece un análisis detallado, cosa que no toca en esta entrada, pero no podía esperar a proporcionártelo por si te interesa para desarrollar un sistema de registro sistemático de actuaciones o para convertir a texto información sensible.
Como te dije, lo he probado personalmente con diferentes tipos de archivos de sonido (archivos wav creados con Audacity y archivos de audio generados con NotebookLM), incluso con archivos de vídeo (mp4 generado con NotebookLM) y el resultado es muy satisfactorio. Pueden observarse algunos errores, pero son mínimos y no comprometen la fidelidad del contenido.
Cierto que para poder usar este script necesitas resolver primero las cuestiones de adaptación de tu sistema (al menos si trabajas con Windows), según indiqué. POr propia experiencia supongo que no te resultará complicado.
La mayor limitación es, no obstante, que esta herramienta sólo resuelve el problema de la transcripción de voz_a_texto, no el acceso al contenido textual resultante, pero esta es una batalla que no podríamos librar sin antes pelear la presente.
Nota
El código mostrado en esta entrada ha sido desarrollado usando IA Gemini 3 y posteriormente revisado y adaptado por el autor.