Implementación de Spear-TTS - red de atención de texto a voz para múltiples hablantes, en Pytorch
El módulo de conversión de texto a semántico creado aquí se utilizará para el acondicionamiento de SoundStorm.
Estabilidad por sus generosos patrocinios para trabajar en investigaciones de inteligencia artificial de vanguardia de código abierto.
¡Lucas Newman por completar la parte de retrotraducción, así como por la decodificación de búsqueda por haz!
¡Lucas Newman por completar el texto final del código de entrenamiento del transformador semántico!
$ pip install spear-tts-pytorch
import torch
from audiolm_pytorch import HubertWithKmeans
from spear_tts_pytorch import (
TextToSemantic ,
SemanticToTextDatasetGenerator ,
GeneratedAudioTextDataset ,
MockDataset
)
wav2vec = HubertWithKmeans (
checkpoint_path = './hubert_base_ls960.pt' ,
kmeans_path = './hubert_base_ls960_L9_km500.bin'
)
model = TextToSemantic (
wav2vec = wav2vec ,
dim = 512 ,
num_text_token_ids = 256 ,
heads = 8 ,
target_kv_heads = 2 , # grouped query attention, for memory efficient decoding
source_depth = 1 ,
target_depth = 1
)
ds = MockDataset ( 10 )
dataset_generator = SemanticToTextDatasetGenerator (
model = model ,
dataset = ds ,
folder = './output_folder'
)
dataset_generator ( max_length = 2 )
generated_dataset = GeneratedAudioTextDataset (
folder = './output_folder'
)
assert len ( generated_dataset ) == 10
agregue eos logic + generate y conecte la generación de un extremo a otro en soundstorm
agregue el primer discurso a discurso previo al entrenamiento con la reconstrucción del 60 % de los tokens eliminados
agregar abandonos para este proyecto, como de bajos recursos
agregue flexibilidad total sobre qué capas de codificador/decodificador congelar durante el entrenamiento
agregue un paso para entrenar en discurso pequeño -> corpus de texto y generar un conjunto de datos pseudoetiquetados + ajuste fino (gracias a @lucasnewman)
agregar el paso final de ajuste del texto -> voz + conjunto de datos pseudoetiquetados
descubrir la mejor manera de almacenar y administrar el conjunto de datos generado pseudoetiquetado
decodificación de búsqueda de haz por lotes
permitir el uso de posiciones giratorias en el decodificador + atención del flash, darle otra cita a Tri
integrar la decodificación especulativa con algo de improvisación, realizado en el mismo modelo utilizando una estrategia de salida temprana
agregue claves/valores almacenados en caché para el iniciador + valores de claves individuales/agrupados, asegúrese de que la atención flash pueda admitir una máscara causal especializada antes de que la atención flash 2 esté en el núcleo de pytorch
pulir el flujo de trabajo de generación de audio-texto
concatenar el conjunto de datos de audio-texto real con el generado -> o poder convertir el conjunto de datos de audio-texto real al generado
@misc { kharitonov2023speak ,
title = { Speak, Read and Prompt: High-Fidelity Text-to-Speech with Minimal Supervision } ,
author = { Eugene Kharitonov and Damien Vincent and Zalán Borsos and Raphaël Marinier and Sertan Girgin and Olivier Pietquin and Matt Sharifi and Marco Tagliasacchi and Neil Zeghidour } ,
year = { 2023 } ,
eprint = { 2302.03540 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.SD }
}
@inproceedings { dao2022flashattention ,
title = { Flash{A}ttention: Fast and Memory-Efficient Exact Attention with {IO}-Awareness } ,
author = { Dao, Tri and Fu, Daniel Y. and Ermon, Stefano and Rudra, Atri and R{'e}, Christopher } ,
booktitle = { Advances in Neural Information Processing Systems } ,
year = { 2022 }
}
@misc { shi2023enhance ,
title = { Enhance audio generation controllability through representation similarity regularization } ,
author = { Yangyang Shi and Gael Le Lan and Varun Nagaraja and Zhaoheng Ni and Xinhao Mei and Ernie Chang and Forrest Iandola and Yang Liu and Vikas Chandra } ,
year = { 2023 } ,
eprint = { 2309.08773 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.SD }
}
@article { Ainslie2023GQATG ,
title = { GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints } ,
author = { Joshua Ainslie and James Lee-Thorp and Michiel de Jong and Yury Zemlyanskiy and Federico Lebr'on and Sumit K. Sanghai } ,
journal = { ArXiv } ,
year = { 2023 } ,
volume = { abs/2305.13245 } ,
url = { https://api.semanticscholar.org/CorpusID:258833177 }
}
@inproceedings { Leviathan2022FastIF ,
title = { Fast Inference from Transformers via Speculative Decoding } ,
author = { Yaniv Leviathan and Matan Kalman and Y. Matias } ,
booktitle = { International Conference on Machine Learning } ,
year = { 2022 } ,
url = { https://api.semanticscholar.org/CorpusID:254096365 }
}