Microservicio modular para generación, ensamblaje y administración de audio personalizado usando Cartesia Sonic-3, con énfasis en reproducibilidad, contratos técnicos estrictos y escalabilidad.
/generate/name/generate/developer/generate/combined- Validación WAV
- Manejo completo de voice_id
- Payload alineado con
/tts/bytes
/assemble/template/assemble/segments/assemble/output_location- Merges bit-exact sin resample
- Templates JSON versionados
- Soporte para nombres, developers y scripts
- Ciclos determinísticos sin repeticiones
- Generación de pares y streams configurables
- Estado persistente en disco
- Índice contract-aware
- Firma de contrato Sonic-3
- Compatibilidad automática
- Bulk generation
- Invalidación segura
- Resumen extendido
- Verificación local ↔ remota
- Listado del bucket
- Comparación por categorías
- Resolución estructurada de paths
- Fallback limpio cuando GCS está desactivado
- Sin imports internos
- Soporte para todas las rutas principales
- Upload de datasets externos
- Validaciones automáticas
- Generación
- Ensamblaje
- Cache
- Rotación
- GCS mockeado
- CLI
- End-to-end mínimo
- Validación Sonic-3
hybrid_audio/
├── assemble_message.py
├── audio_utils.py
├── batch_generate_stems.py
├── bitmerge_semantic.py
├── cache_manager.py
├── CLI.py
├── config.py
├── fastapi_server.py
├── gcloud_storage.py
├── gcs_audit.py
├── gcs_consistency.py
├── gcs_events.py
├── rotational_engine.py
├── routes/
│ ├── assemble.py
│ ├── cache.py
│ ├── generate.py
│ ├── rotation.py
│ └── external.py
├── stems/
├── templates/
├── data/
├── logs/
└── tests/
Requisitos:
- Python 3.12+
- ffmpeg
- sox (opcional)
- Cuenta Cartesia + API key
- Credenciales GCS (si aplica)
Inicializar entorno:
make init
make run
make run-prod
make cli-generate ARGS="name Jose"
make cli-generate ARGS="developer Hilton"
make cli-generate ARGS="combined Jose Hilton"
make cli-assemble ARGS="template Jose Hilton --template double_anchor_hybrid_v3_5.json"
make cli-rotation ARGS="next_pair"
make cli-rotation ARGS="generate_pair"
make cli-rotation ARGS="stream --limit 10"
make cli-cache ARGS="list"
make cli-cache ARGS="invalidate stem.name.Jose"
make cli-cache ARGS="bulk"
make cli-cache-check-bucket ARGS="--label stem.name.jose"
make cli-bucket-list ARGS="--prefix stems/name"
make cli-external ARGS="upload data/my.csv --role names"
POST /generate/namePOST /generate/developerPOST /generate/combined
POST /assemble/templatePOST /assemble/segmentsGET /assemble/output_location
GET /rotation/next_nameGET /rotation/next_developerGET /rotation/next_pairPOST /rotation/generate_pairGET /rotation/pairs_streamGET /rotation/next_scriptPOST /rotation/generate_scriptGET /rotation/scripts_stream
GET /cache/listPOST /cache/invalidatePOST /cache/bulk_generateGET /cache/check_in_bucketGET /cache/bucket_listGET /cache/check_manyGET /cache/consistency_reportPOST /cache/verify_and_repair
POST /external/upload_basePOST /external/previewGET /external/listDELETE /external/delete
- Parse de template
- Resolución de stems (estructura name/developer/script)
- Validación WAV
- Bit-merge exacto
- Output final en
output/
Garantías:
- Preserva samplerate
- Preserva bit depth
- Sin resample
- Sin clipping
- Carga de datasets
- Selección determinística
- Estado persistente
- Streams
- Integración con generación Sonic-3
Capacidades:
- Verificación remota
- Listados por prefix
- Comparador de categorías
- Sincronización incremental
- Healthcheck interno
Ejecutar:
make pytest
Cubre:
- Merges
- WAV validation
- Rotación
- Cache signatures
- GCS mock
- CLI
- End-to-end
- Plantillas
- Contrato Sonic-3
Generados en:
logs/*.jsonl
Incluyen:
- Operaciones GCS
- Auditorías de stems
- Eventos de rotación
- Estado del pipeline
make full-batch
Genera:
- Stems masivos
- Outputs masivos
- Combinaciones name × developer
MIT License.
Desarrollado por José Daniel Soto.