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 descargadostranscripciones/
: textos generados por Whisperdescargaa
: script Bash para descargar episodiostranscribe.sh
: script Bash para transcribirtranscribir.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 comandowhisper
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
yfind
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.