[VOICE] ; Locuciones programadas (AMBE pregrabado) ; Se pueden definir tantas locuciones como se necesiten. ; La primera usa prefijo ANNOUNCEMENT_, las siguientes ANNOUNCEMENT2_, ANNOUNCEMENT3_, etc. ; Para anadir mas, duplicar el bloque con el siguiente numero (ANNOUNCEMENT5_, ANNOUNCEMENT6_...) ; No hay limite en el numero de locuciones. ; ; ANNOUNCEMENT_FILE: Nombre del archivo .ambe (sin extension, se busca en Audio//ondemand/) ; ANNOUNCEMENT_TG: Talkgroup donde se emite la locucion ; ANNOUNCEMENT_MODE: interval (cada X segundos) o hourly (a las horas en punto) ; ANNOUNCEMENT_INTERVAL: Intervalo en segundos (solo si ANNOUNCEMENT_MODE = interval) ; ANNOUNCEMENT_ENABLED: True/False para activar/desactivar ; ANNOUNCEMENT_LANGUAGE: Idioma para buscar el archivo (ej: es_ES, en_GB) ; NOTA: El timeslot se determina automaticamente segun BRIDGES (se emite en TS1, TS2 o ambos) ; NOTA: Los cambios en este archivo se aplican automaticamente (hot-reload cada 15s) ANNOUNCEMENT_ENABLED: False ANNOUNCEMENT_FILE: locucion ANNOUNCEMENT_TG: 2 ANNOUNCEMENT_MODE: hourly ANNOUNCEMENT_INTERVAL: 3600 ANNOUNCEMENT_LANGUAGE: es_ES ; Locucion programada 2 ANNOUNCEMENT2_ENABLED: False ANNOUNCEMENT2_FILE: locucion2 ANNOUNCEMENT2_TG: 2 ANNOUNCEMENT2_MODE: hourly ANNOUNCEMENT2_INTERVAL: 3600 ANNOUNCEMENT2_LANGUAGE: es_ES ; Locucion programada 3 ANNOUNCEMENT3_ENABLED: False ANNOUNCEMENT3_FILE: locucion3 ANNOUNCEMENT3_TG: 2 ANNOUNCEMENT3_MODE: hourly ANNOUNCEMENT3_INTERVAL: 3600 ANNOUNCEMENT3_LANGUAGE: es_ES ; Locucion programada 4 ANNOUNCEMENT4_ENABLED: False ANNOUNCEMENT4_FILE: locucion4 ANNOUNCEMENT4_TG: 2 ANNOUNCEMENT4_MODE: hourly ANNOUNCEMENT4_INTERVAL: 3600 ANNOUNCEMENT4_LANGUAGE: es_ES ; Grabaciones Locuciones ; Graba el trafico de voz en un TG/TS especifico y lo guarda como archivo .ambe ; El archivo grabado se puede usar despues en las locuciones programadas ; Duracion maxima de grabacion: 2 minutos 45 segundos RECORDING_ENABLED: False RECORDING_TG: 2 RECORDING_TIMESLOT: 2 RECORDING_FILE: grabacion RECORDING_LANGUAGE: es_ES ; ============================================================================ ; TTS (Text-to-Speech) - Locuciones desde archivos de texto ; ============================================================================ ; Convierte archivos .txt en audio AMBE para emitir por DMR ; Pipeline: .txt -> gTTS -> .mp3 -> ffmpeg -> .wav -> vocoder -> .ambe ; ; TTS_VOCODER_CMD: Comando del vocoder externo para convertir WAV a AMBE ; Usa {wav} como placeholder del archivo WAV de entrada ; y {ambe} como placeholder del archivo AMBE de salida ; Ejemplo: /usr/local/bin/md380-vocoder -e {wav} {ambe} ; Si esta vacio y no hay AMBEServer, el sistema buscara un .ambe pre-convertido TTS_VOCODER_CMD: ; AMBEServer (DV3000 remoto via UDP) ; Alternativa al vocoder local: conecta a un AMBEServer que tiene un DV3000/ThumbDV ; conectado por puerto serie. El AMBEServer expone el chip via UDP. ; Ver: https://github.com/marrold/AMBEServer ; Si se configura host, se usa AMBEServer como prioridad sobre TTS_VOCODER_CMD ; Puerto por defecto del AMBEServer: 2460 TTS_AMBESERVER_HOST: TTS_AMBESERVER_PORT: 2460 ; TTS_VOLUME: Ajuste de volumen del audio TTS en dB antes de codificar a AMBE ; Valores negativos reducen el volumen, positivos lo aumentan ; Ejemplos: -3 (un poco mas bajo), -6 (notablemente mas bajo), 0 (sin cambio) ; Por defecto: -3 TTS_VOLUME: -3 ; TTS_SPEED: Factor de velocidad de lectura del texto TTS ; 1.0 = velocidad normal de gTTS (suele sonar lento) ; 1.2 = un 20% mas rapido (recomendado para espanol) ; 1.5 = un 50% mas rapido ; Rango valido: 0.5 a 2.0 ; Por defecto: 1.0 TTS_SPEED: 1.0 ; TTS programadas (Text-to-Speech desde archivos .txt) ; Se pueden definir tantas TTS como se necesiten: TTS_ANNOUNCEMENT1_, TTS_ANNOUNCEMENT2_, etc. ; Para anadir mas, duplicar el bloque con el siguiente numero (TTS_ANNOUNCEMENT5_, TTS_ANNOUNCEMENT6_...) ; No hay limite en el numero de anuncios TTS. ; ; TTS_ANNOUNCEMENT1_FILE: Nombre del archivo .txt (sin extension, se busca en Audio//ondemand/) ; TTS_ANNOUNCEMENT1_TG: Talkgroup donde se emite la locucion TTS ; TTS_ANNOUNCEMENT1_MODE: interval (cada X segundos) o hourly (a las horas en punto) ; TTS_ANNOUNCEMENT1_INTERVAL: Intervalo en segundos (solo si MODE = interval) ; TTS_ANNOUNCEMENT1_ENABLED: True/False para activar/desactivar ; TTS_ANNOUNCEMENT1_LANGUAGE: Idioma para TTS y ruta del archivo (ej: es_ES, en_GB) ; NOTA: El timeslot se determina automaticamente segun BRIDGES (se emite en TS1, TS2 o ambos) TTS_ANNOUNCEMENT1_ENABLED: False TTS_ANNOUNCEMENT1_FILE: texto1 TTS_ANNOUNCEMENT1_TG: 2 TTS_ANNOUNCEMENT1_MODE: hourly TTS_ANNOUNCEMENT1_INTERVAL: 3600 TTS_ANNOUNCEMENT1_LANGUAGE: es_ES ; TTS programada 2 TTS_ANNOUNCEMENT2_ENABLED: False TTS_ANNOUNCEMENT2_FILE: texto2 TTS_ANNOUNCEMENT2_TG: 2 TTS_ANNOUNCEMENT2_MODE: hourly TTS_ANNOUNCEMENT2_INTERVAL: 3600 TTS_ANNOUNCEMENT2_LANGUAGE: es_ES ; TTS programada 3 TTS_ANNOUNCEMENT3_ENABLED: False TTS_ANNOUNCEMENT3_FILE: texto3 TTS_ANNOUNCEMENT3_TG: 2 TTS_ANNOUNCEMENT3_MODE: hourly TTS_ANNOUNCEMENT3_INTERVAL: 3600 TTS_ANNOUNCEMENT3_LANGUAGE: es_ES ; TTS programada 4 TTS_ANNOUNCEMENT4_ENABLED: False TTS_ANNOUNCEMENT4_FILE: texto4 TTS_ANNOUNCEMENT4_TG: 2 TTS_ANNOUNCEMENT4_MODE: hourly TTS_ANNOUNCEMENT4_INTERVAL: 3600 TTS_ANNOUNCEMENT4_LANGUAGE: es_ES