Contexto: continuar el audiolibro técnico chino por capítulos

Estamos trabajando en ~//nef/surtido, rama main.
 
Ya está terminado y commiteado el capítulo 1 del curso de lectura china:
- Commit: a624166 cursos: audiolibro chino con subtitulos
- Página local: http://[IP]:8000/cursos/zh/lectura/chino-regresion
- Fuente: reporte/cursos/chino-tecnico-d2l-regresion-lineal.md
- Hay 10 bloques MP3 en mandarín y 10 archivos VTT.
- Cada subtítulo debe mostrar siempre tres líneas sincronizadas:
  1. chino simplificado
  2. pinyin con tonos
  3. traducción al español
- Voz actual: Google Cloud TTS, cmn-CN-Wavenet-A, rate 0.82.
- Orpheus `canopylabs/orpheus-v1-english` no sirve para chino.
- El servidor local se levanta con:
  `.venv/bin/python -m uvicorn asgi:app --host [IP] --port 8000`
 
Continúa con el siguiente capítulo o bloque de `zh.d2l.ai`.
 
Objetivo:
1. Identificar el siguiente material chino que corresponda al curso.
2. Dividirlo en bloques de 3 a 8 minutos, sin generar un proceso monolítico.
3. Extraer chino, pinyin y traducción por frase; verificar que las tres listas tengan el mismo número de frases.
4. Generar un MP3 por bloque con Google Cloud TTS en `cmn-CN-Wavenet-A`, rate 0.82.
5. Crear un VTT por bloque con cada cue en tres líneas: chino, pinyin y español.
6. Integrar todos los bloques en `cursos.py` como reproductores visibles con subtítulos sincronizados.
7. Añadir o ajustar rutas seguras en `asgi.py` para servir únicamente esos MP3/VTT.
8. Probar cada ruta con curl, ejecutar `python -m py_compile asgi.py cursos.py` y `git diff --check`.
9. No regenerar ni reemplazar los bloques ya terminados sin una razón explícita.
10. Commitear los cambios con un mensaje corto en español y dejar la rama main limpia.
 
Antes de empezar, revisa git status, el commit anterior y la estructura existente. Mantén la interfaz inmersiva: chino como capa principal, ayudas opcionales y audio por bloques.