O Simple Subtitling é uma ferramenta de código aberto de geração de legendas de áudio que se concentra na geração automática de legendas e na identificação de alto-falantes para arquivos de vídeo ou áudio. Desenvolvido por Jaesung Huh e hospedado no GitHub, o projeto tem como objetivo fornecer uma solução simples e eficiente de geração de legendas. A ferramenta usa técnicas de processamento de áudio combinadas com modelos de aprendizado de máquina para gerar arquivos de legenda com registro de data e hora e com identificação de locutor para aqueles que precisam adicionar legendas rapidamente a seus vídeos. O projeto é desenvolvido em Python, suporta processamento de áudio mono 16kHz e é fácil de instalar e usar. O Simple Subtitling é um dos projetos de código aberto da pesquisa do Dr. Jaesung Huh, com foco na praticidade e nas contribuições da comunidade de código aberto.
Lista de funções
- Geração automática de legendas: extraia texto de arquivos de áudio para gerar arquivos de legendas com registro de data e hora.
- Etiquetagem de locutor: diferencie os diferentes locutores por meio da análise de fala e adicione etiquetas de locutor às legendas.
- Suporte ao formato SRT: gera arquivos de legenda SRT padrão compatíveis com a maioria dos reprodutores de vídeo.
- Pré-processamento de áudio: suporta a conversão de áudio para o formato mono de 16 kHz para garantir a eficácia do processamento.
- Personalização do arquivo de configuração: os usuários podem ajustar os parâmetros de geração de legendas por meio do arquivo de configuração.
- Código aberto e gratuito: o código é aberto ao público, permitindo que os usuários modifiquem e ampliem a função livremente.
Usando a Ajuda
Processo de instalação
O Simple Subtitling requer um ambiente habilitado para Python, sendo recomendado o Python 3.9 ou superior. Veja a seguir as etapas detalhadas de instalação:
- armazém de clones
Abra um terminal e execute o seguinte comando para clonar o código do projeto:git clone https://github.com/JaesungHuh/simple-subtitling.git --recursive
fazer uso de --recursive
Certifique-se de clonar todos os submódulos.
- Criação de um ambiente virtual
Para evitar conflitos de dependência, recomendamos que você crie um ambiente virtual Python:conda create -n simple python=3.9 conda activate simple
Se o Conda não for usado, ele também poderá ser usado com o
venv
Crie um ambiente virtual:python -m venv simple_env source simple_env/bin/activate # Linux/Mac simple_env\Scripts\activate # Windows
- Instalação de dependências
Vá para o diretório do projeto e instale os pacotes Python necessários:cd simple-subtitling pip install -r requirements.txt
Certifique-se de que sua conexão com a Internet esteja funcionando e os pacotes de dependência serão baixados automaticamente.
- Instalar o FFmpeg
O Simple Subtitling usa o FFmpeg para pré-processamento de áudio. Instale o FFmpeg de acordo com seu sistema operacional:- Ubuntu/Debian::
sudo apt update && sudo apt install ffmpeg
- MacOS(usando o Homebrew):
brew install ffmpeg
- Windows (computador)(usando Chocolatey):
choco install ffmpeg
Após a instalação, execute
ffmpeg -version
Confirme se a instalação foi bem-sucedida. - Ubuntu/Debian::
- Ambiente de configuração
O projeto contém umconfig.yaml
Arquivo de configuração para definir o processamento de áudio e os parâmetros de geração de legendas. Abra o arquivoconfig.yaml
modifique os seguintes campos-chave, conforme necessário:audio_path
Digite o caminho do arquivo de áudio.output_path
Caminho para salvar o arquivo de legenda: O caminho onde o arquivo de legenda é salvo.sample_rate
Verifique se a configuração é16000
(16kHz).
Exemplo de configuração:
audio_path: "input_audio.wav" output_path: "output_subtitle.srt" sample_rate: 16000
Uso
Após a conclusão da instalação, os usuários podem executar o Simple Subtitling a partir da linha de comando:
- Preparação de arquivos de áudio
No momento, o Simple Subtitling suporta apenas áudio mono, 16kHz, formato PCM_16. Se o formato de áudio não atender aos requisitos, use o FFmpeg para convertê-lo:ffmpeg -i input_audio.mp3 -acodec pcm_s16le -ac 1 -ar 16000 output_audio.wav
intercambialidade
input_audio.mp3
é o caminho para seu arquivo de áudio, e a saída éoutput_audio.wav
. - Executar a geração de legendas
No diretório do projeto, execute o script principal:python main.py
O script será baseado no
config.yaml
As configurações na seção Os arquivos de legenda gerados contêm registros de data e hora, identificadores de locutor e conteúdo de texto, e são salvos na pastaoutput_path
O caminho especificado. - Exibir arquivo de legenda
Exemplo de um arquivo SRT gerado:1 00:00:01,000 --> 00:00:03,000 Speaker_1: 你好,欢迎使用 Simple Subtitling。 2 00:00:04,000 --> 00:00:06,000 Speaker_2: 这是一个开源字幕工具。
Os usuários podem importar arquivos SRT para softwares de edição de vídeo (por exemplo, Adobe Premiere, DaVinci Resolve) ou reprodutores (por exemplo, VLC).
Operação da função em destaque
- Identificação do palestrante
O Simple Subtitling usa modelos de aprendizado de máquina para analisar o áudio e distinguir entre diferentes falantes. O modelo é baseado na arquitetura ECAPA-TDNN, com pesos de pré-treinamento fornecidos por Jaesung Huh. Se precisar de mais precisão, você pode baixar o modelo pré-treinado do Hugging Face:model = ECAPA_gender.from_pretrained("JaesungHuh/voice-gender-classifier")
existir
config.yaml
ativarspeaker_diarization: true
Você pode adicionar tags de alto-falante às legendas. - Estilos de legendas personalizados
Os usuários podem modificar oconfig.yaml
acertou em cheiosubtitle_style
campos para ajustar fontes de legendas, cores e muito mais. Atualmente, é compatível com estilos básicos de formato SRT e pode ser ampliado para o formato ASS no futuro. - arquivo de lote
Se precisar processar vários arquivos de áudio, você pode escrever um script simples para percorrer as chamadas.main.py
ou modificaçãoconfig.yaml
Suporte a entrada de vários arquivos. Os scripts de processamento em lote contribuídos pela comunidade podem ser encontrados no fórum de discussão do GitHub.
advertência
- Certifique-se de que a qualidade do áudio de entrada seja clara; o ruído de fundo pode afetar a precisão das legendas.
- O modelo tem melhor desempenho com áudio em inglês; outros idiomas podem exigir treinamento adicional.
- O projeto está em desenvolvimento, portanto, recomendamos que você siga o repositório do GitHub para obter atualizações sobre os recursos e correções mais recentes.
cenário do aplicativo
- Criadores de conteúdo de vídeo
YouTubers ou produtores de vídeos curtos podem usar o Simple Subtitling para gerar automaticamente legendas para seus vídeos, aprimorando a experiência do espectador. O recurso de identificação de locutor da ferramenta é ideal para entrevistas ou conversas com várias pessoas, identificando claramente o conteúdo de cada locutor. - Produção de conteúdo educacional
Os professores ou criadores de cursos on-line podem gerar legendas para vídeos instrucionais para facilitar a leitura pelos alunos, e os arquivos SRT suportam um player multilíngue para cursos internacionalizados. - transcrição de podcast
Os produtores de podcast podem converter áudio em legendas com logotipos de alto-falantes para publicar versões de texto do conteúdo ou criar videoclipes. - procedimentos
Os usuários corporativos podem gerar legendas para gravações de reuniões e organizar rapidamente as atas das reuniões. O recurso de identificação do locutor ajuda a distinguir entre diferentes locutores.
QA
- Quais formatos de áudio são compatíveis com o Simple Subtitling?
Atualmente, somente arquivos WAV mono, 16kHz, formato PCM_16 são suportados. Outros formatos precisam ser convertidos pelo FFmpeg. - Como posso melhorar a precisão da geração de legendas?
Garanta uma qualidade de áudio nítida e reduza o ruído de fundo. Na telaconfig.yaml
ativarspeaker_diarization
e usar modelos pré-treinados. - Você consegue lidar com áudio que não seja em inglês?
Os modelos funcionam melhor para áudio em inglês; outros idiomas podem exigir treinamento adicional ou ajuste do modelo. - Como editar o arquivo de legenda gerado?
Os arquivos SRT podem ser abertos e modificados com um editor de texto (por exemplo, Notepad++) ou com um software de edição de legendas (por exemplo, Aegisub). - O projeto oferece suporte à geração de legendas em tempo real?
A versão atual não oferece suporte ao processamento em tempo real, apenas a arquivos de áudio off-line. A funcionalidade em tempo real poderá ser adicionada em uma atualização futura.