Saltar a contenido

Openia whisper

Perfecto, El. Vamos a documentar exactamente cómo activaste tu entorno virtual y lograste instalar Whisper sin agotar el espacio, algo que puede marcar la diferencia para otros técnicos en condiciones similares. Aquí va la sección que faltaba en tu manual:


🧠 Instalación optimizada de Whisper sin agotar espacio

📍 Ubicación del entorno virtual

Tu entorno virtual funcional está en:

/home/daniel/.venv

⚡ Activación del entorno

Cada vez que trabajas en el proyecto, activas el entorno con:

source ~/.venv/bin/activate

Esto asegura que todos los paquetes se instalen y ejecuten dentro de ese entorno aislado.


🧵 Instalación inteligente de Whisper

En lugar de instalar Whisper con todas sus dependencias (lo que puede ocupar más de 500 MB), usaste una estrategia más eficiente:

1. Instalación sin dependencias

pip install openai-whisper --no-deps

Esto instala solo el código base de Whisper, evitando que se descargue automáticamente PyTorch y otros paquetes pesados.

2. Instalación manual de PyTorch para CPU

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu

Esto instala versiones optimizadas para CPU, mucho más livianas que las versiones con soporte CUDA (GPU).

3. Instalación selectiva de dependencias necesarias

pip install more-itertools numba tqdm tiktoken triton

Esto completa el entorno con solo lo necesario para que Whisper funcione correctamente, sin instalar paquetes redundantes.


🧼 Limpieza para evitar errores de espacio

Antes de instalar, liberaste espacio con:

rm -rf ~/.cache/pip ~/.cache/whisper
sudo apt clean
sudo apt autoremove --purge

Esto eliminó archivos temporales y paquetes innecesarios que estaban ocupando espacio en disco.


✅ Resultado

Con esta estrategia:

  • Evitaste el error OSError: [Errno 28] No queda espacio en el dispositivo
  • Instalaste Whisper y PyTorch de forma funcional y liviana
  • Lograste transcribir audios con éxito usando CPU

¿Quieres que compile todo esto en un README estilo GitHub para que lo publiques como guía técnica? También puedo ayudarte a convertirlo en un artículo para Medium o LinkedIn si quieres mostrar tu enfoque optimizado.

Claro, El. Aquí tienes un manual completo y claro de todo lo que hiciste para configurar tu sistema Ubuntu y lograr descargar y transcribir los episodios del podcast Hablemos eCommerce usando Bash, Python y Whisper. Incluye rutas, comandos clave, y recomendaciones para mantenerlo funcionando.


🧰 Manual técnico: Descarga y transcripción de podcast con Whisper

📁 Estructura del proyecto

Tu proyecto está ubicado en:

/home/daniel/Escritorio/hablemos ecommerce

Contiene:

  • audios/: MP3 descargados
  • transcripciones/: textos generados por Whisper
  • descargaa: script Bash para descargar episodios
  • transcribe.sh: script Bash para transcribir
  • transcribir.py: script Python alternativo para transcripción
  • .venv/: entorno virtual (aunque el que usaste está en ~/.venv/)

🧪 Entorno virtual

Tu entorno virtual funcional está en:

/home/daniel/.venv

Para activarlo:

source ~/.venv/bin/activate

Este entorno contiene:

  • openai-whisper
  • torch, torchaudio, torchvision (versión CPU)
  • Dependencias extra: tiktoken, numba, tqdm, triton, etc.

📥 Descarga de episodios

Script: descargaa

#!/usr/bin/env bash
set -euo pipefail

mkdir -p audios
echo "Obteniendo lista de episodios..."
yt-dlp --flat-playlist -J "$RSS_URL" \
  | jq -r '.entries[].url' \
  | while read -r ep; do
      echo "Descargando $ep"
      yt-dlp -o "audios/%(title)s.%(ext)s" "$ep"
    done

Para ejecutarlo:

chmod +x descargaa
./descargaa

📝 Transcripción con Whisper (Bash)

Script: transcribe.sh

#!/usr/bin/env bash
set -euo pipefail

mkdir -p transcripciones

for file in audios/*.mp3; do
  base=$(basename "$file" .mp3)
  echo "Transcribiendo $base"
  python3 -m whisper "$file" \
    --model small \
    --language Spanish \
    --output_dir transcripciones \
    --output_format txt
done

⚠️ Usaste python3 -m whisper porque el comando whisper no estaba disponible directamente en tu entorno.

Para ejecutarlo:

chmod +x transcribe.sh
./transcribe.sh

🐍 Transcripción con Python (alternativa)

Script: transcribir.py

#!/usr/bin/env python3

import os
import subprocess
from pathlib import Path

AUDIOS_DIR = Path("audios")
TRANSCRIPCIONES_DIR = Path("transcripciones")
TRANSCRIPCIONES_DIR.mkdir(exist_ok=True)

WHISPER_MODEL = "small"

for audio_file in AUDIOS_DIR.glob("*.mp3"):
    base_name = audio_file.stem
    txt_file = TRANSCRIPCIONES_DIR / f"{base_name}.txt"

    if txt_file.exists():
        print(f"✅ Ya existe: {txt_file.name}")
        continue

    print(f"📝 Transcribiendo: {audio_file.name}")
    subprocess.run([
        "python3", "-m", "whisper", str(audio_file),
        "--model", WHISPER_MODEL,
        "--language", "Spanish",
        "--output_format", "txt",
        "--output_dir", str(TRANSCRIPCIONES_DIR)
    ], check=True)

Para ejecutarlo:

python3 transcribir.py

🧼 Limpieza y mantenimiento

  • Borra cachés innecesarios para liberar espacio:
rm -rf ~/.cache/pip ~/.cache/whisper
  • Usa du -h y find para detectar archivos pesados

✅ Verificación final

Para confirmar que todo está listo:

source ~/.venv/bin/activate
python3 -m whisper --help
ls audios/
ls transcripciones/

¿Quieres que te prepare un README estilo GitHub con todo esto listo para publicar como proyecto open source? También puedo ayudarte a agregar funciones como generación de subtítulos .srt, traducción automática, o resumen de cada episodio. Tú marcas el ritmo.