Skip to content

v0.65.0

Choose a tag to compare

@santiquiroz santiquiroz released this 10 Aug 20:39
· 45 commits to master since this release

Convertir formato sin tocar nada 🔁

Nuevo camino en Audio: elegís el formato de salida y listo — sin pedir ningún procesamiento. Un FLAC a MP3 para que entre en cualquier lado.

Y de verdad no toca nada más. La conversión va por su propio camino, en una sola pasada, conservando el sample rate y la profundidad de bits: tu FLAC de 44.1 kHz / 24 bits sale como MP3 a 44.1, no remuestreado a 48. (El camino de procesamiento sigue decodificando a 48 kHz porque los motores lo necesitan; eso no cambió.)

Cuando el formato destino no puede conservar algo, queda registrado y visible en el detalle del trabajo: si hubo que remuestrear, si se bajó de 5.1 a estéreo, si se redujo la profundidad. Nunca en silencio.

  • Formato nuevo: M4A/AAC — el más compatible con teléfonos y Apple. También disponible como salida del procesamiento normal.
  • Calidad elegible para formatos con pérdida: máxima (MP3 320k / AAC 256k), equilibrada (192k) o compacta (128k). El valor por defecto pasó de 192k a máxima.
  • Aviso no bloqueante cuando convertís de lossless a lossy, que es irreversible.
  • Si el archivo ya está en ese formato, te lo dice en vez de encolar un trabajo que no hace nada.
  • Un M4A que ya era AAC se copia sin re-comprimir, en lugar de degradarlo otra vez.

Voz: el pack decía estar listo sin estarlo 🎙️

La conversión de voz necesita tres piezas. El script bajaba dos, para la tercera imprimía instrucciones para generarla a mano… y terminaba con éxito. La tarjeta, que revisaba una sola de las tres, se ponía verde. El panel, que le pregunta al motor real, decía "falta el modelo". Tres capas contradiciéndose.

Ahora la pieza que faltaba se descarga con un click, verificada por hash, desde un repositorio propio publicado para eso: port-xvector-onnx (Apache-2.0, con atribución al modelo original).

El mismo defecto estaba en cinco packs más y se arregló en todos:

  • Texto a voz (Kokoro): el tokenizer solo se bajaba por una rama del script, y la tarjeta miraba una carpeta que el script creaba antes de descargar nada — una corrida fallida igual quedaba en verde.
  • Interpolación (RIFE): la tarjeta pedía solo el binario; también hace falta la carpeta del modelo.
  • Generar video: pedía el binario de sd.cpp contra un paquete que baja 16 GB de pesos y nunca puede producirlo. Descargarlo jamás habría alcanzado.
  • Generar 3D: apuntaba a la carpeta en vez del índice; una descarga a medias contaba como completa.
  • Dos scripts más ganaron verificación final.

Y quedó una defensa permanente: un test compara los requisitos que declara cada tarjeta contra los que su motor exige de verdad. Si alguna promete menos de lo que necesita, la suite falla.

3710 tests backend + 1177 frontend.