Alineación forzada
Qwen3-ForcedAligner proporciona alineación de marcas temporales a nivel de palabra para audio. Realiza un único forward pass no autoregresivo para alinear cada palabra de una transcripción con su posición precisa en la forma de onda del audio.
Cómo funciona
El aligner usa alineación CTC (Connectionist Temporal Classification) con un paso de corrección de monotonía LIS (Longest Increasing Subsequence). Esto garantiza que las marcas temporales siempre estén en orden, incluso cuando la salida CTC bruta contiene inconsistencias menores.
| Propiedad | Valor |
|---|---|
| Método de alineación | CTC con corrección de monotonía LIS |
| Resolución de marcas temporales | 80 ms |
| Clases de salida | 5000 |
| Modo de inferencia | No autoregresivo (un solo forward pass) |
Uso de la CLI
Alinea un archivo de audio. Si no se proporciona transcripción, el audio se transcribe automáticamente primero usando Qwen3-ASR:
.build/release/audio align recording.wav
Proporciona una transcripción conocida para omitir la transcripción automática:
.build/release/audio align recording.wav --text "The quick brown fox jumps over the lazy dog"
Opciones
# Especifica el texto de la transcripción directamente
.build/release/audio align recording.wav --text "known transcript"
# Elige el modelo ASR para el paso de transcripción automática
.build/release/audio align recording.wav --model 1.7b
# Especifica la variante del modelo aligner
.build/release/audio align recording.wav --aligner-model default
# Establece el idioma
.build/release/audio align recording.wav --language en
Variantes del modelo
Hay varias variantes del modelo disponibles, intercambiando tamaño por precisión:
| Variante | ID del modelo | Tamaño |
|---|---|---|
| MLX 4-bit (por defecto) | aufklarer/Qwen3-ForcedAligner-0.6B-4bit | ~979 MB |
| MLX 8-bit | aufklarer/Qwen3-ForcedAligner-0.6B-8bit | ~1.3 GB |
| MLX bf16 | aufklarer/Qwen3-ForcedAligner-0.6B-bf16 | ~1.8 GB |
| CoreML INT4 | aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT4 | ~662 MB |
| CoreML INT8 | aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT8 | ~1.1 GB |
Selecciona una variante con --aligner-model:
.build/release/audio align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
Formato de salida
El aligner genera una línea por palabra con las marcas temporales de inicio y fin en segundos:
[0.24 - 0.48] The
[0.48 - 0.72] quick
[0.72 - 1.04] brown
[1.04 - 1.36] fox
[1.36 - 1.68] jumps
[1.68 - 1.92] over
[1.92 - 2.08] the
[2.08 - 2.40] lazy
[2.40 - 2.80] dog
Cada par de marcas temporales indica la hora de inicio y de fin de la palabra en el audio, con una resolución de 80 ms.
Cuando no se proporciona --text, el aligner ejecuta primero un pase completo de transcripción con Qwen3-ASR y luego alinea el texto resultante. Esto significa que la primera ejecución carga tanto el modelo ASR como el modelo aligner. Proporcionar --text omite el paso del ASR y carga solo el aligner.