Seamless est une famille de modèles d'IA qui permettent une communication plus naturelle et authentique entre les langues. Seamlessm4t est un modèle multimodal multimodal multimodal massif prenant en charge environ 100 langues. Seamlessm4t sert de base à un saillantexpressif, un modèle qui préserve des éléments de prosodie et du style vocal à travers les langues et la stress streepranding, un modèle prenant en charge la traduction simultanée et le streaming ASR pour environ 100 langues. Saillessexpressive et street streeming sont combinés en sans couture, un modèle unifié avec des traductions multilingues, en temps réel et expressives.
SEAMNOLSEMM4T V2 | Sans dilatation | Streaming sans couture | |
---|---|---|---|
Démo | SEAMNOLSEMM4T V2 Demo | Démo sans couture | |
Démo d'espace en étreinte | ? SAMELESTMM4T V2 | ? Espace sans couture | ? Espace transparent |
Sans couture
Emma
SONAR
AI sur Meta Blog
Un tutoriel exhaustif donné à l'Expo Neirips 2023 - sans couture, qui est un guichet unique pour apprendre à utiliser toute la suite de modèles transparents. N'hésitez pas à jouer avec le cahier.
Seamlessm4t est notre fondational tout -en - un .
Les modèles SAMELNOLSM4T prennent en charge les tâches de:
? Nous sortons Samnestm4t V2, une version mise à jour avec notre nouvelle architecture Unity2 . Ce nouveau modèle s'améliore par rapport à la qualité de la qualité et de la latence d'inférence dans les tâches de génération de parole.
Pour en savoir plus sur la collection de modèles SAMELNOLSM4T, l'approche utilisée dans chacun, leur couverture linguistique et leurs performances, visitez le Saillessm4t Readme ou? Carte modèle.
Note
M4T sans couture est également disponible dans le? Bibliothèque Transformers. Visitez cette section pour plus de détails.
CatelementExpressive est un modèle de traduction de la parole qui capture certains aspects sous-explorés de la prosodie tels que le taux de parole et les pauses, tout en préservant le style de la voix et une qualité de traduction de contenu élevée.
Pour en savoir plus sur les modèles sans équivalent, visitez le réadme sans équivoque ou? Carte modèle
Le streaming sans couture est un modèle de traduction en streaming. Le modèle prend en charge la parole en tant que modalité d'entrée et parole / texte en tant que modalités de sortie.
Le modèle de streaming sans couture prend en charge les tâches suivantes:
Pour en savoir plus sur les modèles transparents, visitez le réadme en streaming sans couture ou? Carte modèle
Le modèle transparent est le modèle unifié pour les traductions expressives de la parole à la parole.
Note
L'un des conditions préalables est Fairseq2 qui possède des packages pré-construits disponibles uniquement pour les ordinateurs Mac Linux X86-64 et Apple-Silicon. De plus, il dépend de libsndfile qui pourrait ne pas être installé sur votre machine. Si vous rencontrez des problèmes d'installation, veuillez vous référer à sa lecture pour d'autres instructions.
pip install .
Note
Transcription Audio d'inférence pour l'informatique Métrique utilise Whisper, qui est automatiquement installé. Whisper nécessite à son tour l'outil de ligne de commande ffmpeg
à installer sur votre système, qui est disponible auprès de la plupart des gestionnaires de packages.
Voici un exemple d'utilisation de la CLI du répertoire racine pour exécuter l'inférence.
Tâche S2ST:
m4t_predict < path_to_input_audio > --task s2st --tgt_lang < tgt_lang > --output_path < path_to_save_audio >
Tâche T2TT:
m4t_predict < input_text > --task t2tt --tgt_lang < tgt_lang > --src_lang < src_lang >
Veuillez vous référer à l'inférence Readme pour une instruction détaillée sur la façon d'exécuter l'inférence et la liste des langues prises en charge sur la source, les côtés cibles pour la parole, les modalités de texte.
Pour exécuter S2TT / ASR Native (sans Python) en utilisant GGML, veuillez vous référer à la section Unity.CPP.
Note
Veuillez vérifier la section sur la façon de télécharger le modèle.
Voici un exemple d'utilisation de la CLI du répertoire racine pour exécuter l'inférence.
expressivity_predict < path_to_input_audio > --tgt_lang < tgt_lang > --model_name seamless_expressivity --vocoder_name vocoder_pretssel --output_path < path_to_save_audio >
La lecture de l'évaluation du streaming a des instructions détaillées pour exécuter des évaluations pour les modèles transparents et transparents. La CLI a une option --no-scoring
qui peut être utilisée pour sauter la pièce de notation et exécuter l'inférence.
Veuillez consulter le ReadMe de l'inférence pour plus de détails.
Vous pouvez dupliquer l'espace HF sans streaming pour exécuter la démo en streaming.
Vous pouvez également exécuter la démo localement, en clonant l'espace d'ici. Voir le Readme du dépôt HF sans couture pour plus de détails sur l'installation.
Pour lancer le même espace de démonstration que nous hébergeons sur le visage étreint localement:
cd demo
pip install -r requirements.txt
python app.py
Nom du modèle | #params | point de contrôle | métrique |
---|---|---|---|
Couturesm4t-large v2 | 2.3b | ? Carte modèle - point de contrôle | métrique |
Seamlessm4t-Garg (V1) | 2.3b | ? Carte modèle - point de contrôle | métrique |
SEAUXM4T-Medium (V1) | 1.2b | ? Carte modèle - point de contrôle | métrique |
? Carte modèle
Pour accéder et télécharger sans cesse une expression, veuillez demander les artefacts du modèle via ce formulaire de demande. Après approbation, vous recevrez ensuite un e-mail avec des liens de téléchargement vers chaque modèle d'artefact.
Veuillez noter que SAMPELESSExpressive est mis à disposition sous sa propre licence et sa politique d'utilisation acceptable.
Nom du modèle | #params | point de contrôle | métrique |
---|---|---|---|
Streaming sans couture | 2.5b | ? Carte modèle - point de contrôle du décodeur monotonique - Streaming Unity2 Point de contrôle | métrique |
Le modèle sans couture est simplement le modèle de streaming sans couture avec le vocoder_v2
non expressif échangé avec le vocoder_pretssel
expressif_pretssel. Veuillez consulter la section ci-dessus sur la façon d'acquérir le point de contrôle vocoder_pretssel
.
Nom du modèle | #params | point de contrôle |
---|---|---|
W2V-BERT 2.0 | 600m | ? Carte modèle - point de contrôle |
Voici comment vous devez faire un passage à travers le codeur de la parole:
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 )
Pour reproduire nos résultats, ou pour évaluer en utilisant les mêmes mesures sur vos propres tests, veuillez consulter la lecture ici.
Vous trouverez ci-dessous le script pour une évaluation lot efficace.
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}
Veuillez consulter cette section ReadMe
La lecture de l'évaluation du streaming a des instructions détaillées pour exécuter des évaluations sur les modèles transparents et transparents.
Pour activer la communication transparente partout, nous avons implémenté Unity.cpp afin que les utilisateurs puissent exécuter des modèles sans couturem4t dans GGML - une bibliothèque de tenseur C permettant une intégration plus facile sur les plates-formes verbales.
Pour transcrire / tradter un audio donné,
./ggml/bin/unity --model seamlessM4T_medium.ggml input.wav
Pour plus de détails sur la construction et plus d'utilisation, veuillez consulter Unity.cpp
Nous avons créé deux ensembles de données expressifs de traduction de la parole, Mexpresso et Mdral, entre l'anglais et cinq autres langues - français, allemand, italien, mandarin et espagnol. Nous avons actuellement open source le discours sur le texte de Mexpresso pour les directions hors anglais, et nous ouvrirons bientôt la partie restante des ensembles de données. Pour plus de détails, veuillez consulter Readme
Nous introduisons la première procédure d'expressive d'alignement de la parole. En commençant par des données brutes, la procédure d'alignement expressive découvre automatiquement les paires de segments audio partageant non seulement la même signification, mais la même expressivité globale. Pour présenter cette procédure, nous mettons des métadonnées disponibles pour créer un ensemble de données d'analyse comparative appelée SeamlessalignExpressive, qui peut être utilisée pour valider la qualité de notre méthode d'alignement. SeamlessalignExpressive est la première collection à grande échelle (11k + heures) d'alignements audio multilingues pour la traduction expressive. Plus de détails peuvent être trouvés sur la lecture de SaillessalignExpressive.
Veuillez consulter le Readme ici. Notez que le modèle V1 Samnestm4T utilise des unités réduites et d'autres modèles utilisent des unités non réduites.
La communication transparente dépend de 4 bibliothèques développées par Meta.
Fairseq2 est notre bibliothèque open source de nouvelle génération des composants de modélisation de séquences qui offre aux chercheurs et aux développeurs des blocs de construction pour la traduction machine, la modélisation du langage et d'autres tâches de génération de séquences. Tous les modèles SAMELNOSM4T de ce référentiel sont alimentés par Fairseq2.
Les représentations multimodales et agnostiques de la phrase, au niveau de la phrase sont un nouvel espace d'intégration de phrases multilingue et modale qui surpasse les incorporations existantes de phrases telles que Laser3 et LabSE sur les tasks de recherche de similitude multilingue de XSIM et XSIM ++. Le sonar fournit des encodeurs de texte et de discours pour de nombreuses langues. Saillessalign a été exploité sur la base des intérêts de sonar.
Blaser 2.0 est notre dernière métrique d'évaluation basée sur un modèle pour la traduction multimodale. Il s'agit d'une extension de Blaser, soutenant à la fois la parole et le texte. Il fonctionne directement sur le signal source et, en tant que tel, ne nécessite aucun système ASR intermédiaire comme ASR-BEUU. Comme dans la première version, Blaser 2.0 exploite la similitude entre les incorporations de phrases d'entrée et de sortie. Le sonar est l'espace d'incorporation sous-jacent pour Blaser 2.0. Des scripts pour exécuter l'évaluation avec Blaser 2.0 peuvent être trouvés dans le repo sonar.
Dans le cadre du projet de communication sans couture, nous avons étendu la bibliothèque Stoptes. La version 1 a fourni un outil d'extraction de texte à texte pour créer un ensemble de données de formation pour les modèles de traduction. La version 2 a été étendue grâce à Sonar, pour soutenir les tâches autour de la formation de grands modèles de traduction de la parole. En particulier, nous fournissons des outils pour lire / écrire les ensembles de données Fairseq Audiozip et un nouveau pipeline minier qui peut faire de la parole à la parole, du texte-parole, de la parole et du texte et de l'exploitation de texte à texte, tout basé sur Le nouvel espace d'incorporation de sonar.
Simuleval est une bibliothèque utilisée pour évaluer les modèles de traduction simulanés. Simuleval fournit également un backend pour la génération en utilisant des entrées partielles / incrémentielles avec des états flexibles / extensibles, qui est utilisé pour implémenter l'inférence de streaming. Les utilisateurs définissent des agents qui implémentent l'interface de Simuleval, qui peut être connecté ensemble dans un pipeline. Vous pouvez trouver des agents mis en œuvre pour un stress streaming ici.
Veuillez consulter le Readme ici.
Outre les modèles sans couture M4T de grands (2,3b) et moyens (1,2b), nous publions également un petit modèle (281 m) ciblé pour l'inférence sur les appareils. Pour en savoir plus sur l'utilisation et les détails du modèle, consultez le Readme ici.
Nous ouverts les métadonnées en open à couture, le plus grand ensemble de données ouvert pour la traduction multimodale, totalisant 270 000 heures de données de parole et de texte alignées. L'ensemble de données peut être reconstruit par la communauté en fonction de la lecture de soignante.
Si vous utilisez sans couture dans votre travail ou tous les modèles / ensembles de données / artefacts publiés en transparent, veuillez citer:
@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 }
}
Nous avons trois catégories de licences.
Les composants non génératifs suivants sont sous licence MIT comme trouvé dans MIT_LICENNE:
Les modèles suivants sont CC-BY-NC 4.0 sous licence comme dans la licence:
Les modèles suivants sont sous licence transparente comme trouvé dans SAMELESS_LICENNE: