O desenvolvimento da funcionalidade de legendagem em tempo real requer os seguintes processos de implementação técnica principais:
- Preparação do modeloEscolha um modelo adequado para o idioma de destino (por exemplo, o chinês requer o download do modelo zh-cn), e é recomendável usar um modelo grande com um rescore para melhorar a taxa de precisão.
- Construção de dutos de áudio::
- Criação de um ambiente de processamento de áudio por meio do AudioContext
- Use createTransferer para criar um buffer de transferência de dados de tamanho 128*150 - ouvinte de eventosRegistro sincronizado de dois eventos importantes:
- partialResult: obtém o resultado temporário do reconhecimento para exibição em tempo real a cada 200ms
- result: produz o texto final quando o fim da declaração é detectado - Otimização da renderização da interface do usuárioRecomenda-se usar a tecnologia anti-shake para controlar a frequência de atualização do DOM para evitar atrasos na interface.
Dica de desempenho:
- Ao lidar com dublagem de vídeo, os arquivos de áudio podem ser pré-processados por meio do OfflineAudioContext
- Para vídeos longos, é recomendável carregar o modelo em segmentos para evitar o estouro de memória
- A linha do tempo da legenda pode ser sincronizada com AudioContext.currentTime.
Essa resposta foi extraída do artigoVosk-Browser: ferramenta de reconhecimento de fala executada em um navegadorO
































