Sistema de reconhecimento de fala multilíngue da Meta, de código aberto, compatível com mais de 1600 idiomas

NOASSERTIONPythonomnilingual-asrfacebookresearch 1.6k Last Updated: November 13, 2025

Omnilingual ASR – Sistema de Reconhecimento de Fala Multilíngue de Código Aberto da Meta

Visão Geral do Projeto

O Omnilingual ASR é um sistema revolucionário de reconhecimento de fala de código aberto desenvolvido pela equipe de Pesquisa em Inteligência Artificial Fundamental (FAIR) da Meta. O sistema suporta o reconhecimento de fala em mais de 1600 idiomas, incluindo centenas de línguas que nunca haviam sido cobertas por nenhuma tecnologia ASR anteriormente. O diferencial deste projeto reside no fato de não apenas oferecer suporte a esses 1600 idiomas treinados, mas também poder ser expandido, por meio de aprendizado contextual com zero-shot, para mais de 5400 idiomas — abrangendo praticamente todos os sistemas de escrita conhecidos.

Características Principais

1. Cobertura Linguística Sem Precedentes

  • Mais de 1600 idiomas oficialmente suportados: com suporte completo após treinamento
  • Mais de 5400 idiomas com suporte potencial: expansível via aprendizado zero-shot
  • Suporte a idiomas de baixos recursos: 78% dos idiomas suportados apresentam taxa de erro de caracteres (CER) inferior a 10%
  • Inclui suporte ao japonês: código de idioma jpn_Jpan

2. Licença de Código Aberto

O projeto é totalmente de código aberto sob a licença Apache 2.0, e não utiliza a licença restritiva Llama usada anteriormente pela Meta. Isso significa que pesquisadores e desenvolvedores podem utilizá-lo imediatamente e gratuitamente, inclusive em projetos comerciais e corporativos, sem quaisquer restrições.

3. Capacidade de Aprendizado Zero-Shot

Graças à funcionalidade de aprendizado contextual zero-shot, os usuários podem fornecer alguns exemplos emparelhados de áudio-texto de uma nova língua durante a inferência, permitindo que o modelo transcreva frases adicionais nesse idioma sem necessidade de novo treinamento. Isso confere ao sistema uma escalabilidade sem precedentes.

Arquitetura Técnica

Família de Modelos

O projeto inclui várias variantes de modelos:

  1. Série de codificadores W2V (Wav2Vec 2.0)

    • Escalas de parâmetros: 300M, 1B, 3B, 7B
    • Utilizados para extrair representações multilíngues de fala
  2. Série de decodificadores CTC

    • Baseada na estrutura Connectionist Temporal Classification (CTC)
    • Escalas de parâmetros: 300M, 1B, 3B, 7B
  3. Série de decodificadores LLM

    • Baseada na arquitetura Transformer
    • Escalas de parâmetros: 300M, 1B, 3B, 7B
    • Inclui variante zero-shot (7B_ZS)

Inovações Tecnológicas Centrais

O sistema expande o codificador wav2vec 2.0 para 7 bilhões de parâmetros, conseguindo pela primeira vez gerar representações semânticas multilíngues ricas e em larga escala diretamente a partir de dados brutos de fala não transcritos.

Conjunto de Dados

Corpus Omnilingual ASR

A Meta colaborou com pesquisadores e organizações comunitárias da África, Ásia e outras regiões para criar o Corpus Omnilingual ASR, um conjunto de dados com 3350 horas de áudio abrangendo 348 idiomas de baixos recursos.

Organizações parceiras incluem:

  • African Next Voices (apoiado pela Fundação Gates)
  • Projeto Common Voice da Fundação Mozilla
  • Lanfrica / NaijaVoices

Características do conjunto de dados:

  • Licenciado abertamente sob CC-BY-4.0
  • Contém fala natural e não roteirizada
  • Prompts abertos culturalmente relevantes

Instalação e Uso

Instalação Básica

# Usando pip
pip install omnilingual-asr

# Usando uv
uv add omnilingual-asr

Observação: o suporte a áudio requer a biblioteca libsndfile (Mac: brew install libsndfile)

Exemplo Básico de Uso

from omnilingual_asr.models.inference.pipeline import ASRInferencePipeline

# Inicializar pipeline
pipeline = ASRInferencePipeline(model_card="omniASR_LLM_7B")

# Preparar arquivos de áudio e idiomas
audio_files = ["/path/to/eng_audio1.flac", "/path/to/deu_audio2.wav"]
lang = ["eng_Latn", "deu_Latn"]

# Executar transcrição
transcriptions = pipeline.transcribe(audio_files, lang=lang, batch_size=2)

Verificar Idiomas Suportados

from omnilingual_asr.models.wav2vec2_llama.lang_ids import supported_langs

# Imprimir todos os idiomas suportados
print(f"Total de idiomas suportados: {len(supported_langs)}")
print(supported_langs)

# Verificar se um idioma específico é suportado
if "eng_Latn" in supported_langs:
    print("Inglês (escrita latina) é suportado!")

Formato dos códigos de idioma: {código_do_idioma}_{sistema_de_escrita}, por exemplo:

  • eng_Latn – Inglês (escrita latina)
  • cmn_Hans – Mandarim (chinês simplificado)
  • jpn_Jpan – Japonês (escrita japonesa)

Usar o Conjunto de Dados para Avaliação

from datasets import load_dataset
from omnilingual_asr.models.inference.pipeline import ASRInferencePipeline

# Carregar conjunto de dados de um idioma específico
omni_dataset = load_dataset("facebook/omnilingual-asr-corpus", "lij_Latn", 
                             split="train", streaming=True)
batch = next(omni_dataset.iter(5))

# Converter para formato de entrada do pipeline
audio_data = [{"waveform": x["array"], "sample_rate": x["sampling_rate"]}
              for x in batch["audio"]]

# Executar inferência
pipeline = ASRInferencePipeline(model_card="omniASR_LLM_7B")
transcriptions = pipeline.transcribe(audio_data, batch_size=2)

Métricas de Desempenho

O maior modelo, 7B-LLM-ASR, alcançou taxa de erro de caracteres inferior a 10 em quase 80% dos idiomas suportados. Entre eles:

  • 236 idiomas exigiram mais de 50 horas de dados de treinamento
  • 195 idiomas obtiveram bom desempenho com menos de 10 horas de dados de treinamento

Perspectivas de Aplicação

Este sistema é de grande importância para educação, governos e organizações não governamentais:

  • Educação: apoia a transcrição e tradução de tradições orais ou palestras em língua materna
  • Governos e ONGs: oferece interfaces de voz e ferramentas documentais acessíveis a grupos marginalizados
  • Indústria de IA: demonstra que sistemas de IA em escala global podem ser construídos com base em princípios abertos e impulsionados pela comunidade

Limitações Atuais

⚠️ Aviso importante: atualmente, aceita-se apenas arquivos de áudio com duração inferior a 40 segundos para inferência. A equipe planeja adicionar em breve suporte à transcrição de arquivos de áudio de duração ilimitada.

Recursos do Projeto

Formato de Citação

Se utilizar o Omnilingual ASR em sua pesquisa, cite-o usando o seguinte formato BibTeX:

@misc{omnilingualasr2025,
  title={{Omnilingual ASR}: Open-Source Multilingual Speech Recognition for 1600+ Languages},
  author={{Omnilingual ASR Team} and Keren, Gil and Kozhevnikov, Artyom and Meng, Yen and Ropers, Christophe and Setzler, Matthew and Wang, Skyler and Adebara, Ife and Auli, Michael and Chan, Kevin and Cheng, Chierh and Chuang, Joe and Droof, Caley and Duppenthaler, Mark and Duquenne, Paul-Ambroise and Erben, Alexander and Gao, Cynthia and Mejia Gonzalez, Gabriel and Lyu, Kehan and Miglani, Sagar and Pratap, Vineel and Sadagopan, Kaushik Ram and Saleem, Safiyyah and Turkatenko, Arina and Ventayol-Boada, Albert and Yong, Zheng-Xin and Chung, Yu-An and Maillard, Jean and Moritz, Rashel and Mourachko, Alexandre and Williamson, Mary and Yates, Shireen},
  year={2025},
  url={https://ai.meta.com/research/publications/omnilingual-asr-open-source-multilingual-speech-recognition-for-1600-languages/},
}

Conclusão

O Omnilingual ASR representa um avanço significativo na tecnologia de reconhecimento de fala, não apenas por alcançar uma cobertura linguística sem precedentes, mas principalmente por sua abertura e escalabilidade, que trazem verdadeira democratização tecnológica às comunidades linguísticas globais. Isso marca uma mudança no campo do ASR, saindo de serviços fechados e centralizados na nuvem rumo a uma infraestrutura escalável e comunitária, tornando a tecnologia de reconhecimento de fala uma ferramenta inclusiva, e não limitadora.

Star History Chart