File size: 2,883 Bytes
f1e4744
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/zsh
# Gera tests/live_pt.f32 (16 kHz mono float32) com fala em pt-BR e pausas variadas, para o teste de resistência.
set -e
cd "$(dirname "$0")/.."
cat > tests/live_pt.txt <<'TXT'
Boa noite pessoal, bem-vindos à live de hoje. [[slnc 700]] Hoje a gente vai conversar sobre como construir sistemas que rodam no seu próprio computador, sem depender de nenhuma empresa grande. [[slnc 1300]]
Eu comecei esse projeto porque estava cansada de pagar assinatura para tudo e ainda perder o controle dos meus dados. [[slnc 500]] Então resolvi montar uma legenda ao vivo que funciona completamente offline. [[slnc 1500]]
O modelo de transcrição reconhece a minha voz em português, e depois outro modelo traduz o texto para o espanhol enquanto eu continuo falando. [[slnc 900]]
Parece simples, mas o difícil é manter tudo rápido durante uma hora inteira, sem o computador esquentar e sem a legenda ficar cada vez mais atrasada. [[slnc 1200]]
Por isso eu medi tudo, o consumo de processador, a memória, a temperatura e o tempo que cada frase leva para aparecer na tela. [[slnc 600]] Se o atraso começar a crescer, alguma coisa está errada no sistema. [[slnc 1400]]
Uma das primeiras lições foi que não adianta traduzir um parágrafo inteiro de uma vez. [[slnc 400]] É melhor traduzir frase por frase, assim o espectador vê o texto aparecendo aos poucos. [[slnc 1000]]
Outra lição é que o computador só consegue fazer uma tradução por vez, então se você pedir várias ao mesmo tempo, todas ficam lentas. [[slnc 1600]]
Vamos dar uma pausa agora para olhar o chat. [[slnc 1800]] Pessoal, se vocês estiverem me ouvindo, mandem um oi aí embaixo, e não esqueçam de responder a pesquisa que está na descrição. [[slnc 1200]]
Voltando ao assunto, eu também quero falar sobre privacidade, porque tudo que eu falo aqui fica na minha máquina e não vai para nenhum servidor de terceiros. [[slnc 800]]
Isso é importante para quem trabalha com informações sensíveis, como organizações da sociedade civil, jornalistas e defensores de direitos humanos. [[slnc 1500]]
Agora vou falar mais rápido para testar o sistema sob pressão, porque numa live de verdade a gente nem sempre faz pausas, a gente empolga e fala sem parar, mudando de assunto no meio da frase, e o sistema precisa acompanhar sem travar e sem acumular atraso nenhum. [[slnc 1300]]
Prontinho, respirei. [[slnc 600]] Então é isso, o objetivo é que qualquer pessoa consiga rodar esse sistema no próprio computador, entender como ele funciona e trocar os modelos quando aparecerem opções melhores. [[slnc 2000]]
TXT
say -v Luciana -r 175 -f tests/live_pt.txt -o tests/live_pt.aiff
ffmpeg -y -loglevel error -i tests/live_pt.aiff -ac 1 -ar 16000 -f f32le tests/live_pt.f32
rm tests/live_pt.aiff
python3 -I -c "import os;print('duração: %.0f s' % (os.path.getsize('tests/live_pt.f32')/4/16000))"