Pacotes de Fala
Pacotes de fala são coleções de templates de texto que conduzem anúncios de cabine durante voos. Cada pacote contém um ou mais templates vinculados a fases específicas de voo, e o texto é convertido em áudio usando a síntese de voz ElevenLabs. Isso permite que companhias aéreas virtuais entreguem anúncios PA realistas e apropriados por fase aos pilotos através de clientes ACARS.
Caminho no backoffice: backoffice/speech-packs
Disponível para funções: Administrador do Sistema, Administrador
Estrutura do Pacote
Cada pacote de fala tem os seguintes campos de nível superior:
| Campo | Descrição |
|---|---|
| Nome | Nome de exibição do pacote (ex.: "PA Padrão em Inglês", "Regional Lufthansa") |
| Descrição | Notas opcionais sobre o uso pretendido ou público do pacote |
| Ativo | Indicador para habilitar ou desabilitar o pacote inteiro |
Um pacote contém um ou mais templates, cada um definindo um único anúncio que é reproduzido em um ponto específico durante o voo.
Templates
Cada template dentro de um pacote de fala configura um único anúncio. Templates possuem os seguintes campos:
| Campo | Descrição |
|---|---|
| Fase de gatilho | A fase do voo que aciona este anúncio (veja tabela abaixo) |
| Função de voz | CAPTAIN ou FLIGHT_ATTENDANT -- determina qual persona entrega o anúncio |
| Perfil de voz | Vincula a um Perfil de Voz que define a voz ElevenLabs e seus parâmetros TTS |
| Substituição de idioma de fala | Opcionalmente substitui o Idioma de Fala padrão do perfil de voz para este template |
| Texto do template | O corpo do anúncio, que pode incluir variáveis de template (veja abaixo) |
| Ordem | Ordenação numérica quando múltiplos templates compartilham a mesma fase de gatilho |
| Ativo | Indicador para habilitar ou desabilitar este template individual |
Fases de Gatilho
Templates podem ser acionados nestas fases de voo:
| Fase | Identificador | Quando Dispara |
|---|---|---|
| Saída do Portão | gate_departure | Antes do pushback, ainda no portão |
| Pushback | pushback | Durante o pushback do portão |
| Táxi | taxi | Durante o táxi para a pista |
| Subida Inicial | climb_out | Após decolagem, durante a subida inicial (60s após entrar na zona de subida) |
| Cruzeiro | cruise | Ao atingir a altitude de cruzeiro |
| Descida | descend | Quando a descida começa perto do destino |
| Passando 10.000 | passing_10000 | Subindo por 10.000 ft após a decolagem |
| Descendo 10.000 | descending_10000 | Descendo por 10.000 ft na aproximação |
| Aproximação Final | final_approach | Na aproximação final para a pista |
| Após Pouso | after_landing | Após toque e rolagem |
| Chegada ao Portão | gate_arrival | Ao chegar ao portão de destino |
Variáveis de Template
O texto do template suporta variáveis dinâmicas que são resolvidas no momento da geração usando dados reais do voo:
| Variável | Resolve Para | Exemplo |
|---|---|---|
{salute} | Saudação por hora do dia baseada na configuração de saudação do idioma de fala | "Bom dia" |
{flight_number} | Número do voo com dígitos falados como palavras (localizado) | "um dois três quatro" |
{destination} | Nome da cidade do aeroporto de chegada | "Londres" |
{origin} | Nome da cidade do aeroporto de partida | "Frankfurt" |
{airline} | Nome da companhia aérea | "Lufthansa" |
{aircraft_type} | Nome do tipo de frota ou aeronave | "Airbus A320" |
{captain} | Nome do comandante | "Capitão Mueller" |
{callsign} | Indicativo ATC | "Speedbird 42" |
Exemplo de texto de template:
{salute}, senhoras e senhores. Aqui é o seu comandante falando. Bem-vindos a bordo do voo {airline} {flight_number}
com serviço de {origin} para {destination}. Estaremos voando em um {aircraft_type} hoje.
Por favor, certifiquem-se de que seus cintos estejam afivelados e suas mesinhas estejam na posição vertical.
Atribuição e Resolução de Prioridade
Pacotes de fala não são globais por padrão. Eles devem ser explicitamente atribuídos a uma ou mais das seguintes entidades:
- Companhias Aéreas -- aplica-se a todos os voos operados pela companhia aérea
- Frotas -- aplica-se a todas as aeronaves na frota
- Subfrotas -- aplica-se a todas as aeronaves na subfrota
- Aeronaves -- aplica-se a um número de cauda específico
- Aeroportos -- aplica-se em contexto de partida ou chegada
Quando múltiplos pacotes de fala se aplicam a um determinado voo (ex.: um atribuído à companhia aérea e outro à aeronave específica), o sistema resolve conflitos usando uma hierarquia de prioridade. A atribuição mais específica prevalece:
| Prioridade | Nível de Atribuição | Descrição |
|---|---|---|
| 1 (mais alta) | Aeronave | Pacote atribuído ao número de cauda específico |
| 2 | Aeroporto de Chegada | Pacote atribuído ao aeroporto de chegada |
| 3 | Aeroporto de Partida | Pacote atribuído ao aeroporto de partida |
| 4 | Subfrota | Pacote atribuído à subfrota da aeronave |
| 5 | Frota | Pacote atribuído à frota da aeronave |
| 6 (mais baixa) | Companhia Aérea | Pacote atribuído à companhia aérea operadora |
Este sistema de sobreposição permite que você defina um pacote base no nível da companhia aérea e depois substitua anúncios específicos para aeroportos, tipos de aeronaves ou números de cauda individuais. Por exemplo, você pode ter um pacote padrão em inglês para a companhia aérea, mas atribuir um pacote bilíngue a aeronaves operando para o Aeroporto de Narita em Tóquio.
Geração e Cache de Áudio
Quando o texto de um template (após substituição de variáveis) é enviado ao ElevenLabs para síntese, o áudio resultante é armazenado em cache usando um hash SHA-256 do texto renderizado. Isso significa:
- Se o mesmo texto exato já foi gerado antes, o áudio em cache é reutilizado e o ElevenLabs não é chamado novamente.
- Alterar qualquer valor de variável (número de voo diferente, destino diferente) produz um hash diferente e aciona nova geração de áudio.
- Editar o texto do template em si também produzirá novo áudio no próximo uso.
Formato de Áudio e Efeito PA
Fragmentos de áudio gerados são armazenados como arquivos MP3. Um efeito de microfone PA opcional pode ser aplicado para simular um sistema PA de cabine realista. Esta cadeia de efeitos inclui:
- Filtro passa-banda -- corta frequências baixas e altas para emular um alto-falante de cabine
- Compressão -- nivela picos e vales de volume
- Eco -- adiciona reverberação sutil típica da acústica de cabine de aeronave
Entrega aos Clientes
O áudio em cache é entregue aos clientes ACARS via o endpoint API:
GET /api/acars/sound
O cliente solicita anúncios para a fase atual do voo, e o servidor retorna os fragmentos de áudio apropriados com base no pacote de fala resolvido e no contexto atual do voo.
Dicas de Uso
- Comece com um único pacote atribuído no nível da companhia aérea para cobrir todos os voos, depois adicione pacotes especializados conforme necessário.
- Use o campo de ordem para sequenciar múltiplos anúncios dentro da mesma fase de voo (ex.: boas-vindas do comandante seguidas de briefing de segurança do comissário na saída do portão).
- Desabilite templates individuais com o indicador ativo em vez de excluí-los -- isso preserva seu trabalho caso queira reabilitá-los depois.
- A substituição de idioma de fala em templates individuais é útil para anúncios bilíngues: crie dois templates para a mesma fase, um em cada idioma, com ordenação apropriada.
- Monitore seu uso do ElevenLabs, já que cada renderização de texto única consome créditos API. O cache SHA-256 ajuda a minimizar chamadas redundantes.