Guía Técnica

TTS multivoz sin conexión y SDK Android en RK3588-S

Winge integró y probó un SDK Android de TTS sin conexión en RK3588-S con Android 12 y arm64-v8a. La entrega incluyó PCM de 24 kHz en streaming, voz masculina china zm_009, varias voces femeninas, AAR, Demo APK, muestras WAV y registros de prueba con latencia, RTF y límites de validación documentados.

TTS multivoz sin conexión y SDK Android en RK3588-S

Contexto y límite de publicación

El proyecto abordó texto a voz sin conexión en un terminal RK3588-S. Se implementaron empaquetado del modelo, callbacks de streaming, control de reproducción, voz masculina y varias voces femeninas, AAR y Demo APK para Android 12 arm64-v8a con permisos comunes. Los WAV y las métricas proceden del dispositivo físico. Se eliminaron nombres de cliente y activos; solo se publican hechos verificables mediante código, compilaciones, registros y audio.

Objetivos de ingeniería

  • Generar voz localmente sin red.
  • Ofrecer PCM asíncrono en streaming mediante Android AAR.
  • Permitir voz masculina y varias voces femeninas en chino.
  • Entregar Demo, guía, licencias, WAV y registros de prueba.

Flujo en el dispositivo

Un texto nuevo puede detener solicitudes antiguas activas o en cola. El modelo Kokoro no cuantizado se carga al crear el SDK y se ejecuta en la CPU RK3588-S. La salida son bloques de 24 kHz, mono, PCM16 little-endian. La síntesis no llama a TTS en la nube.

  1. Generar voz localmente sin red.
  2. Ofrecer PCM asíncrono en streaming mediante Android AAR.
  3. Permitir voz masculina y varias voces femeninas en chino.
  4. Entregar Demo, guía, licencias, WAV y registros de prueba.

Entrega del SDK Android

El AAR ofrece EyeTtsSdk, TtsOptions, TtsStreamCallback y TtsAudioData. replaceTextStreamAsync() detiene texto anterior y sintetiza el más nuevo; stopTts() detiene y limpia la cola. La salida es PCM bruto, no WAV.

TtsOptions options = new TtsOptions("zm_009", 1.0f, 1.0f);
tts.replaceTextStreamAsync(text, options, callback);
// callback.onAudioChunk(... TtsAudioData audio)

Voz masculina y prueba en dispositivo

La voz masculina se probó en el dispositivo. La voz publicada es zm_009, speaker ID 58, con la misma frase a 0,8x, 1,0x y 1,4x. Las duraciones fueron 5,549, 4,363 y 3,086 segundos; todos los WAV son 24 kHz mono PCM16 sin clipping. Las medidas no sustituyen la evaluación auditiva.

Male zm_009 / 0.8x

Male zm_009 / 1.0x

Male zm_009 / 1.4x

Múltiples voces femeninas

El SDK 0.5.1 asigna 55 nombres oficiales de voces femeninas chinas; el Demo generó 12 candidatas en RK3588-S. zf_001 es la referencia pública. Duración, pico y hash distintos descartan exportación duplicada, pero no demuestran naturalidad ni idoneidad.

Female zf_001 / 1.0x

Entorno de hardware y software

ElementoValor
SoCRK3588-S
OSAndroid 12
ABIarm64-v8a
ModelKokoro multi-lang v1.1, non-quantized
Runtimesherpa-onnx 1.13.4, CPU, 4 threads
Output24000 Hz, mono, PCM16 little-endian

Resultados medidos en RK3588-S

Voz / tasaPCM inicialTotalAudioRTFClipping
Female zf_001 / 1.0x1572 ms4387 ms4.241 s1.0340
Male zm_009 / 0.8x1923 ms5534 ms5.549 s0.9970
Male zm_009 / 1.0x1545 ms4396 ms4.363 s1.0080
Male zm_009 / 1.4x1133 ms3201 ms3.086 s1.0380

Se midió la misma frase corta en chino con cuatro hilos y parámetro de volumen 1,0. First chunk es el tiempo hasta el primer PCM; RTF es tiempo de generación dividido por duración. Fuente: prueba Winge RK3588-S del 2026-08-05. La muestra pequeña no garantiza todos los textos.

Pruebas y entregables

  • EyeAlgo TTS Android AAR y Core AAR correspondiente.
  • Demo APK para voz, tasa, volumen, reproducción, parada y exportación WAV.
  • Inventario Kokoro, SHA-256, WAV, registros, guía de integración y licencias.

38 test suites / 185 test cases / 0 failures / 0 errors / 0 skipped. AAR and APK builds passed.

Escenarios aplicables

Puede evaluarse para gafas inteligentes, lectura OCR offline, terminales industriales, alarmas, exposiciones y Android en red aislada. Diálogo, texto largo y firmware de producción requieren pruebas propias de tamaño, memoria, latencia, audio, normalización y estabilidad.

Condiciones de integración

  • Objetivo probado: Android 12, arm64-v8a; otros requieren validación.
  • AAR no cuantizado de unos 354 MiB y Demo APK de unos 360 MiB.
  • Eliminar runtimes en conflicto y configurar AudioTrack a 24000 Hz, mono, PCM16 little-endian.

Límites y aceptación

  • Estado CUSTOMER_TEST / NOT PRODUCTION.
  • Texto largo, ocho horas, evaluación de todas las voces, INT8 y firma de producción están pendientes.
  • First-chunk P95 y RTF no alcanzaron el objetivo original.

Referencias técnicas públicas

Los ID de voz, la configuración Android y el muestreo siguen la documentación Kokoro de sherpa-onnx. El origen y la licencia siguen Kokoro-82M-v1.1-zh. La documentación upstream identifica el componente, no demuestra la aceptación.

Preguntas frecuentes

¿El SDK funciona totalmente sin conexión?

La síntesis es local y no llama a TTS en la nube. La red para distribución inicial o sincronización depende del despliegue.

¿Se probó la voz masculina en RK3588-S?

Sí. zm_009 se generó a tres velocidades y se registraron latencia, tiempo, RTF y clipping. Faltan texto largo y ocho horas.

¿Cuántas voces femeninas chinas admite?

El SDK asigna 55 nombres y el Demo generó 12 candidatas en el dispositivo. No equivale a aceptación subjetiva de todas.

¿El callback devuelve WAV?

No. Devuelve PCM16 mono de 24 kHz sin cabecera; al guardar se añade una cabecera WAV.

¿Por qué no se declara listo para producción?

Faltan texto largo, todas las voces, estabilidad de ocho horas, firma de producción y la cadena de audio del cliente.

Evaluar una Actualización

Envíe el modelo de cámara, los parámetros RTSP, muestras del lugar, campo de visión, red, E/S de alarma y requisitos de aceptación.

Online
Phone
13910119357
WeChat
WhatsApp
Winge Technology WhatsApp QR code Scan or click to contact us
Top