Seamless es una familia de modelos de IA que permiten una comunicación más natural y auténtica en todos los idiomas. SeamlessM4T es un modelo de traducción automática multilingüe multilingüe enorme que admite alrededor de 100 idiomas. SeamlessM4t sirve como base para SeamlessExpressive, un modelo que preserva elementos de prosodia y estilo de voz en todos los idiomas y la transmisión perfecta, un modelo que admite la traducción simultánea y la transmisión ASR para alrededor de 100 idiomas. SeamlessExpressive y Seamlessstreaming se combinan en un modelo sin costuras, un modelo unificado con traducciones multilingües, en tiempo real y expresivas.
Seamlessm4t v2 | Sin costura EXPRISIVA | Estreamigante sin costura | |
---|---|---|---|
Manifestación | Demo sin costurasm4t v2 | Demo sinuguantil | |
Demostración del espacio de Huggingface | ? Espacio sin costurasm4t v2 | ? Espacio sin costura EXPRESive | ? Espacio sin costura |
Sin costura
Emma
SONAR
AI en Meta Blog
Un tutorial exhaustivo dado en Neurips 2023 - Seamless Expo, que es una ventanilla única para aprender a usar todo el conjunto de modelos sin costuras. No dude en jugar con el cuaderno.
SeamlessM4t es nuestro modelo fundamental de ransilación de mcina de todo en lo que está en una traducción de la ranilación de la translación mhine que ofrece una traducción de alta calidad para el habla y el texto en casi 100 idiomas.
Los modelos SeamlessM4T admiten las tareas de:
? Estamos lanzando SeamlessM4T V2, una versión actualizada con nuestra nueva arquitectura Unity2 . Este nuevo modelo mejora sobre CossingM4t V1 en calidad y latencia de inferencia en las tareas de generación del habla.
Para obtener más información sobre la colección de modelos SeamlessM4T, el enfoque utilizado en cada uno, su cobertura de idiomas y su rendimiento, visite el ReadMe o ReadMe ORMINGM4T? Tarjeta modelo.
Nota
M4T sin costuras también está disponible en el? Biblioteca Transformers. Visite esta sección para más detalles.
SeamlessExpressive es un modelo de traducción de voz a voz que captura ciertos aspectos subexplorados de la prosodia, como la velocidad de voz y las pausas, al tiempo que preserva el estilo de la voz de la voz y la alta calidad de traducción de contenido.
Para obtener más información sobre los modelos sin costura, visite el readMe o ReadMe o? Tarjeta modelo
Seamlessstreaming es un modelo de traducción de transmisión. El modelo admite el habla como modalidad de entrada y voz/texto como modalidades de salida.
El modelo de transferencia SeamlessStreaming admite las siguientes tareas:
Para obtener más información sobre los modelos de transmisión sin problemas, visite el readme o el readme de transmisión sin costuras? Tarjeta modelo
El modelo sin costuras es el modelo unificado para las traducciones expresivas de transmisión de voz a voz.
Nota
Uno de los requisitos previos es FairSeq2, que tiene paquetes preconstruidos disponibles solo para las computadoras Linux X86-64 y Apple-Silicon Mac. Además, tiene una dependencia de Libsndfile que podría no instalarse en su máquina. Si experimenta algún problema de instalación, consulte su ReadMe para obtener más instrucciones.
pip install .
Nota
La transcripción de audio de inferencia para la métrica de computación usa Whisper, que se instala automáticamente. Whisper a su vez requiere que la herramienta de comandos ffmpeg
se instale en su sistema, que está disponible en la mayoría de los administradores de paquetes.
Aquí hay un ejemplo de usar la CLI del directorio raíz para ejecutar inferencia.
Tarea S2st:
m4t_predict < path_to_input_audio > --task s2st --tgt_lang < tgt_lang > --output_path < path_to_save_audio >
Tarea T2TT:
m4t_predict < input_text > --task t2tt --tgt_lang < tgt_lang > --src_lang < src_lang >
Consulte el ReadMe de inferencia para obtener una instrucción detallada sobre cómo ejecutar la inferencia y la lista de idiomas compatibles en la fuente, los lados de destino para las modalidades de texto, de texto.
Para ejecutar S2TT/Asr de forma nativa (sin Python) usando GGML, consulte la sección Unity.cpp.
Nota
Consulte la sección sobre cómo descargar el modelo.
Aquí hay un ejemplo de usar la CLI del directorio raíz para ejecutar inferencia.
expressivity_predict < path_to_input_audio > --tgt_lang < tgt_lang > --model_name seamless_expressivity --vocoder_name vocoder_pretssel --output_path < path_to_save_audio >
Evaluación de transmisión ReadMe tiene instrucciones detalladas para ejecutar evaluaciones para los modelos sin costuras y sin problemas. La CLI tiene una opción --no-scoring
que se puede usar para omitir la parte de puntuación y simplemente ejecutar inferencia.
Consulte el Readme de inferencia para obtener más detalles.
Puede duplicar el espacio HF HF sin costuras para ejecutar la demostración de transmisión.
También puede ejecutar la demostración localmente, clonando el espacio desde aquí. Consulte el readme del repositorio HF sin costuras para obtener más detalles sobre la instalación.
Para lanzar el mismo espacio de demostración, alojamos en la cara abrazada localmente:
cd demo
pip install -r requirements.txt
python app.py
Nombre del modelo | #params | control | métrica |
---|---|---|---|
Seamlessm4t-Large V2 | 2.3b | ? Tarjeta modelo - punto de control | métrica |
Seamlessm4t-Large (V1) | 2.3b | ? Tarjeta modelo - punto de control | métrica |
Medio sin costura (V1) | 1.2b | ? Tarjeta modelo - punto de control | métrica |
? Tarjeta modelo
Para acceder y descargar SeamlessExpressive, solicite los artefactos del modelo a través de este formulario de solicitud. Tras la aprobación, recibirá un correo electrónico con enlaces de descarga a cada artefacto de modelo.
Tenga en cuenta que SeamlessExpressive está disponible bajo su propia licencia y política de uso aceptable.
Nombre del modelo | #params | control | métrica |
---|---|---|---|
Estreamigante sin costura | 2.5b | ? Tarjeta modelo - punto de control de decodificador monotónico - Corriente de control Unity2 | métrica |
El modelo sin costuras es simplemente el modelo sin costura con el vocoder_v2
no expresivo cambiado con el expresivo vocoder_pretssel
. Consulte la sección anterior sobre cómo adquirir vocoder_pretssel
STARPET.
Nombre del modelo | #params | control |
---|---|---|
W2V-Bert 2.0 | 600m | ? Tarjeta modelo - punto de control |
Así es como deberías hacer un paso de Foward a través del codificador del discurso:
import torch
from fairseq2 . data . audio import AudioDecoder , WaveformToFbankConverter
from fairseq2 . memory import MemoryBlock
from fairseq2 . nn . padding import get_seqs_and_padding_mask
from fairseq2 . data import Collater
from pathlib import Path
from seamless_communication . models . conformer_shaw import load_conformer_shaw_model
audio_wav_path , device , dtype = ...
audio_decoder = AudioDecoder ( dtype = torch . float32 , device = device )
fbank_converter = WaveformToFbankConverter (
num_mel_bins = 80 ,
waveform_scale = 2 ** 15 ,
channel_last = True ,
standardize = True ,
device = device ,
dtype = dtype ,
)
collater = Collater ( pad_value = 1 )
model = load_conformer_shaw_model ( "conformer_shaw" , device = device , dtype = dtype )
model . eval ()
with Path ( audio_wav_path ). open ( "rb" ) as fb :
block = MemoryBlock ( fb . read ())
decoded_audio = audio_decoder ( block )
src = collater ( fbank_converter ( decoded_audio ))[ "fbank" ]
seqs , padding_mask = get_seqs_and_padding_mask ( src )
with torch . inference_mode ():
seqs , padding_mask = model . encoder_frontend ( seqs , padding_mask )
seqs , padding_mask = model . encoder ( seqs , padding_mask )
Para reproducir nuestros resultados o evaluar el uso de las mismas métricas sobre sus propios conjuntos de pruebas, consulte el ReadMe aquí.
A continuación se muestra el script para una evaluación eficiente por lotes.
export MODEL_DIR= " /path/to/SeamlessExpressive/model "
export TEST_SET_TSV= " input.tsv " # Your dataset in a TSV file, with headers "id", "audio"
export TGT_LANG= " spa " # Target language to translate into, options including "fra", "deu", "eng" ("cmn" and "ita" are experimental)
export OUTPUT_DIR= " tmp/ " # Output directory for generated text/unit/waveform
export TGT_TEXT_COL= " tgt_text " # The column in your ${TEST_SET_TSV} for reference target text to calcuate BLEU score. You can skip this argument.
export DFACTOR= " 1.0 " # Duration factor for model inference to tune predicted duration (preddur=DFACTOR*preddur) per each position which affects output speech rate. Greater value means slower speech rate (default to 1.0). See expressive evaluation README for details on duration factor we used.
expressivity_evaluate ${TEST_SET_TSV}
--gated-model-dir ${MODEL_DIR} --task s2st --tgt_lang ${TGT_LANG}
--audio_root_dir " " --output_path ${OUTPUT_DIR} --ref_field ${TGT_TEXT_COL}
--model_name seamless_expressivity --vocoder_name vocoder_pretssel
--text_unk_blocking True --duration_factor ${DFACTOR}
Por favor, consulte esta sección Readme
Evaluación de transmisión ReadMe tiene instrucciones detalladas para ejecutar evaluaciones en los modelos sin costuras y sin problemas.
Para habilitar una comunicación perfecta en todas partes, implementamos Unity.cpp para que los usuarios puedan ejecutar modelos SeamlessM4T en GGML, una biblioteca tensor de C que permite una integración más fácil en plataformas detalladas.
Para transcribir/traducir un audio dado,
./ggml/bin/unity --model seamlessM4T_medium.ggml input.wav
Para obtener detalles sobre la compilación y más uso, consulte Unity.cpp
Creamos dos conjuntos de datos expresivos de traducción del habla a voz, Mexpresso y Mdral, entre inglés y otros cinco idiomas: francés, alemán, italiano, mandarín y español. Actualmente abrimos el código de texto de mexpresso para instrucciones fuera del inglés, y pronto abriremos la parte restante de los conjuntos de datos. Para más detalles, consulte Readme
Estamos presentando el primer procedimiento expresivo de alineación del habla. Comenzando con datos sin procesar, el procedimiento de alineación expresiva descubre automáticamente pares de segmentos de audio que comparten no solo el mismo significado, sino la misma expresividad general. Para mostrar este procedimiento, estamos haciendo que los metadatos estén disponibles para crear un conjunto de datos de evaluación comparativa llamado SeamlessLeLignExpressive, que puede usarse para validar la calidad de nuestro método de alineación. SeamlessAlignExpressive es la primera colección a gran escala (11k+ horas) de alineaciones de audio multilingües para la traducción expresiva. Se pueden encontrar más detalles en el readMe sin costuras.
Por favor, consulte el Readme aquí. Tenga en cuenta que el modelo SeamlessM4T V1 utiliza unidades reducidas y otros modelos usan unidades no reducidas.
La comunicación perfecta depende de 4 bibliotecas desarrolladas por Meta.
Fairseq2 es nuestra biblioteca de código abierto de componentes de modelado de secuencia de próxima generación que proporciona a los investigadores y desarrolladores bloques de construcción para traducción automática, modelado de idiomas y otras tareas de generación de secuencias. Todos los modelos SeamlessM4T en este repositorio están alimentados por FairSeq2.
El sonar, las representaciones multimodales y agnósticas del lenguaje a nivel de oración son un nuevo espacio de incrustación de oraciones multilingües y moderadas que supera a las incrustaciones de oraciones existentes como Laser3 y Labse en las tareas de búsqueda de similitud multilingüe XSIM y XSIM ++. Sonar proporciona codificadores de texto y habla para muchos idiomas. Se cosean a Seamlessalign basado en incrustaciones de sonar.
Blaser 2.0 es nuestra última métrica de evaluación basada en modelos para la traducción multimodal. Es una extensión de Blaser, que respalda tanto el habla como el texto. Funciona directamente en la señal de origen y, como tal, no requiere ningún sistema ASR intermedio como ASR-Bleu. Como en la primera versión, Blaser 2.0 aprovecha la similitud entre los incrustaciones de la oración de entrada y la salida. El sonar es el espacio de incrustación subyacente para Blaser 2.0. Los scripts para ejecutar la evaluación con Blaser 2.0 se pueden encontrar en el repositorio de sonar.
Como parte del proyecto de comunicación sin problemas, hemos extendido la biblioteca Stopes. La versión 1 proporcionó una herramienta de minería de texto a texto para crear un conjunto de datos de capacitación para modelos de traducción. La versión 2 se ha extendido gracias a SONAR, para apoyar tareas en torno a la capacitación de grandes modelos de traducción del habla. En particular, proporcionamos herramientas para leer/escribir los conjuntos de datos de Audiozip FairSeq y una nueva tubería minera que puede hacer una minería de voz a voz, texto a voz, habla a texto y texto a texto, todo basado en El nuevo espacio de incrustación de sonar.
Simuleval es una biblioteca utilizada para evaluar modelos de traducción simulánea. Simuleval también proporciona un backend para la generación utilizando entradas parciales/incrementales con estados flexibles/extensibles, que se utiliza para implementar la inferencia de transmisión. Los usuarios definen a los agentes que implementan la interfaz de Simuleval, que se pueden conectar juntos en una tubería. Puede encontrar agentes implementados para costuras de transferencia aquí.
Por favor, consulte el Readme aquí.
Además de los modelos grandes-M4T grandes (2.3b) y medios (1.2b), también estamos liberando un modelo pequeño (281m) dirigido a la inferencia en el dispositivo. Para obtener más información sobre el uso y los detalles del modelo, consulte el Readme aquí.
De código abierto los metadatos para cosectables, el conjunto de datos abierto más grande para la traducción multimodal, por un total de 270k+ horas de datos alineados de voz y texto. El conjunto de datos puede ser reconstruido por la comunidad basado en el readMe sin costuras.
Si usa perfectas en su trabajo o en cualquier modelos/conjuntos de datos/artefactos publicados en Seamless, cite:
@inproceedings { seamless2023 ,
title = " Seamless: Multilingual Expressive and Streaming Speech Translation " ,
author="{Seamless Communication}, Lo{"i}c Barrault, Yu-An Chung, Mariano Coria Meglioli, David Dale, Ning Dong, Mark Duppenthaler, Paul-Ambroise Duquenne, Brian Ellis, Hady Elsahar, Justin Haaheim, John Hoffman, Min-Jae Hwang, Hirofumi Inaguma, Christopher Klaiber, Ilia Kulikov, Pengwei Li, Daniel Licht, Jean Maillard, Ruslan Mavlyutov, Alice Rakotoarison, Kaushik Ram Sadagopan, Abinesh Ramakrishnan, Tuan Tran, Guillaume Wenzek, Yilin Yang, Ethan Ye, Ivan Evtimov, Pierre Fernandez, Cynthia Gao, Prangthip Hansanti, Elahe Kalbassi, Amanda Kallet, Artyom Kozhevnikov, Gabriel Mejia, Robin San Roman, Christophe Touret, Corinne Wong, Carleigh Wood, Bokai Yu, Pierre Andrews, Can Balioglu, Peng-Jen Chen, Marta R. Costa-juss{`a}, Maha Elbayad, Hongyu Gong, Francisco Guzm{'a}n, Kevin Heffernan, Somya Jain, Justine Kao, Ann Lee, Xutai Ma, Alex Mourachko, Benjamin Peloquin, Juan Pino, Sravya Popuri, Christophe Ropers, Safiyyah Saleem, Holger Schwenk, Anna Sun, Paden Tomasello, Changhan Wang, Jeff Wang, Skyler Wang, Mary Williamson",
journal = { ArXiv } ,
year = { 2023 }
}
Tenemos tres categorías de licencias.
Los siguientes componentes no generativos tienen licencia MIT como se encuentra en MIT_License:
Los siguientes modelos tienen licencia CC-by-NC 4.0 como se encuentra en la licencia:
Los siguientes modelos tienen una licencia perfecta como se encuentra en Seamless_License: