Existem dois tipos de pessoas neste mundo: as que assistem a programas de TV com legendas e as que são esquisitas.
Brincadeiras à parte, a importância das legendas ocultas para vídeo não pode ser subestimada. Além de serem cruciais para surdos e deficientes auditivos, as legendas também são importantes quando o áudio não está disponível ou não é claramente audível. Talvez você esteja assistindo a um vídeo em um local público e o áudio seja abafado pelo ruído ambiente. Ou talvez a pessoa que fala no vídeo esteja usando um microfone que não é da melhor qualidade ou fale com um sotaque ou dialeto desconhecido para o espectador. Legendas são sempre uma coisa boa. Infelizmente, legendar o áudio em uma transmissão ao vivo é complicado.
Antes de nos aprofundarmos no problema de legendar transmissões ao vivo, vamos falar um pouco sobre semântica. Você sabia que existe uma diferença entre os termos legenda oculta e legenda ?
transcrição ou tradução do diálogo, adequada para quando o som está disponível, mas não é compreendido (por exemplo, porque o usuário não entende o idioma da faixa de áudio do recurso de mídia). Sobreposto no vídeo.
A especificação descreve as legendas como:
Transcrição ou tradução do diálogo, efeitos sonoros, pistas musicais relevantes e outras informações de áudio relevantes, adequadas para quando o som não está disponível ou não é claramente audível (por exemplo, porque está mudo, abafado pelo ruído ambiente ou porque o usuário é surdo ). Sobreposto no vídeo; rotulados como apropriados para deficientes auditivos.
Isso significa que quando falamos de "legendas ocultas" para vídeos ao vivo, geralmente nos referimos a legendas , pois as legendas geralmente incluem informações descritivas. Pense em uma cena de um programa de TV em que um ator entra no carro para sair de casa e se despede do cônjuge. A legenda dessa cena pode ser "Adeus, querida. [O motor do carro liga]."
Não estamos perto de ter sistemas de IA descrevendo informações contextuais como esta para nós, então estamos limitados a adicionar legendas de "fala para texto" puras à nossa transmissão ao vivo; podemos fazer isso usando o método abaixo.
Observação: você notará que o título e o corpo desta postagem do blog usam os termos 'legendas' ou 'legendas ocultas', embora o que realmente estamos falando aqui sejam legendas baseadas nas definições acima. Infelizmente, como o termo 'legendas ocultas' é tão comumente usado incorretamente, faz mais sentido usar esse termo de maneira inadequada para ajudar os desenvolvedores a encontrar esta postagem no blog e aprender como adicionar esse recurso às suas transmissões ao vivo. Apenas saiba que o que realmente estamos falando aqui são legendas!
A solução que examinamos neste post se concentra na transmissão ao vivo para uma transmissão ao vivo do Amazon Interactive Video Service (Amazon IVS) de
Para esta demonstração, escolhi usar o OBS-captions-plugin
do ratwithacompiler (
Em seguida, selecione o ícone de 'engrenagem' no encaixe Legendas para modificar as configurações.
Certifique-se de que uma fonte de legenda esteja selecionada e modifique a configuração do plug-in para atender às suas necessidades. Por exemplo, o tempo limite de legenda padrão para mim foi definido como 15.0
segundos, mas descobri que 5.0
segundos é um valor melhor.
Depois de salvar sua configuração e iniciar uma nova transmissão ao vivo, o plug-in lida com a conversão de sua fala em texto e produz as informações de legenda necessárias para a transmissão ao vivo.
Para reproduzir os dados de legenda com o player Amazon IVS, podemos adicionar um ouvinte de evento para ouvir o evento TextCue
(
ivsPlayer.addEventListener(IVSPlayer.PlayerEventType.TEXT_CUE, (evt) => { console.log(evt); }
O manipulador configurado acima registra todos os eventos TextCue
recebidos no console.
A propriedade text
do evento TextCue
contém os dados da legenda.
Com um pouco de HTML e CSS, podemos renderizar os dados da legenda como uma sobreposição no elemento <video>
. Essa implementação depende muito de suas necessidades, mas você deve levar em consideração a ocultação automática da sobreposição após um período especificado sem dados de legenda.
Nesta postagem, vimos como usar um plug-in OBS para converter fala em texto e publicar esse texto como dados de legenda em uma transmissão ao vivo do Amazon IVS.