Que tal adicionar legenda naquele filme que você baixou rodando apenas uma linha de comando?
Usando
reconhecimento automático de fala em áudio isso é possível! E muito mais!
Vosko é um
toolkit para reconhecimento de fala que fornece um aplicativo de linha de comando para transcrição automática de áudio. Ele tem a vantagem de trabalhar offline e não necessita de uma chave de registro em API proprietária tal como Google, IBM, Bing etc.
Tem suporte a mais de 20 idiomas, como Inglês, Espanhol, Português, Francês entre outros e também fornece módulos para desenvolvimento, permitindo ao desenvolvedor criar seu próprio código caso queira. Contudo, este artigo se refere à ferramenta de linha de comando que vem junto com a
instalação, o
vosk-transcriber.
Devemos ter em conta sempre que a transcrição não será perfeita e que ajustes sempre serão necessários. Às vezes mais, às vezes menos. Se a transcrição que você deseja fizer parte de um trabalho importante, sempre revise o resultado.
Devemos também ter em mente que a
transcrição de conteúdo que tenha mais de um
idioma sendo falado (comum no ramo da informática), não será boa. Mais uma razão para uma revisão posterior!
A instalação é simples, porém há a necessidade da instalação do pacote
Pipewire para o Jack, além de ter o
Python versão 3 instalado - o que já é pré-requisito nos sistemas
Linux atuais-- além do pip. O endereço para baixar o Jack para
Pipewire é:
https://pkgs.org/download/libjack.so.0()(64bit)
E escolha ali a opção da sua distribuição de Linux. No
Opensuse Tumblerbleed, por exemplo, você vai precisar desses dois pacotes:
libjack0-1.9.22-2.3.x86_64.rpm Jack Audio Connection Kit Library
pipewire-libjack-0_3-0.3.84-1.1.x86_64.rpm
Eles podem ser baixados usando o seu programa de gerenciamento de pacotes.
Então, em modo usuário, digite no
Terminal:
pip3 install vosk
Se der erro, tente o comando:
pip3 install --break-system-packages vosk
E pronto! A mágica já está feita! Este comando vai instalar o
vosk-transcriber, que já pode ser chamado pela linha de comando:
vosk-transcriber -h
$ usage: vosk-transcriber [-h] [--model MODEL] [--server] [--list-models] [--list-languages] [--model-name MODEL_NAME] [--lang LANG] [--input INPUT] [--output OUTPUT] [--output-type OUTPUT_TYPE] [--tasks TASKS] [--log-level LOG_LEVEL]
$
$ Transcribe audio file and save result in selected format
$
$ optional arguments:
$ -h, --help show this help message and exit
$ --model MODEL, -m MODEL
$ model path
$ --server, -s use server for recognition
$ --list-models list available models
$ --list-languages list available languages
$ --model-name MODEL_NAME, -n MODEL_NAME: select model by name
$ --lang LANG, -l LANG : select model by language
$ --input INPUT, -i INPUT : audiofile
$ --output OUTPUT, -o OUTPUT : optional output filename path
$ --output-type OUTPUT_TYPE, -t OUTPUT_TYPE : optional arg output data type
$ --tasks TASKS, -ts TASKS :number of parallel recognition tasks
$ --log-level LOG_LEVEL : logging level
Se desejar consultar o site do projeto, basta acessar o site
https://alphacephei.com/vosk/ que possui um guia rápido das opções do comando:
- -i - arquivo de entrada, arquivo com o áudio a ser processado;
- -o - arquivo de saída em formato texto;
- -t - tipo de saída (podemos informar que queremos um formato de legenda);
- --list-languages - listar os idiomas disponíveis para transcrição;
- --list-models - listar os modelos treinados disponíveis. Um modelo com mais dados pode fornecer uma transcrição mais precisa;
- -n - seleciona o modelo;
- -l - linguagem do áudio.
Estes são os comandos mais básicos. Rodando com a opção
-h como fizemos no exemplo acima fornece as opções completas.