Ce code fonctionne sur Python 3.10, je ne l'ai pas testé sur d'autres versions. Certaines versions plus anciennes auront des problèmes.
C'est possible maintenant.
Pour les développeurs:
Pour tout le monde:
Assurez-vous que ces choses ne sont pas dans votre entrée vocale: (sans ordre particulier)
Qu'est-ce qui fait un bon audio rapide? (sans ordre particulier)
| Nom | Modèle Hubert | Version de quantification | Époque | Langue | Ensemble de données |
|---|---|---|---|---|---|
| quantifier_hubert_base_ls960.pth | Base de Hubert | 0 | 3 | Engin | Gitmylo / écorce-formation |
| Quantifier_Hubert_Base_LS960_14.pth | Base de Hubert | 0 | 14 | Engin | Gitmylo / écorce-formation |
| Quantifier_V1_HUBERT_BASE_LS960_23.PTH | Base de Hubert | 1 | 23 | Engin | Gitmylo / écorce-formation |
| Auteur | Nom | Modèle Hubert | Version de quantification | Époque | Langue | Ensemble de données |
|---|---|---|---|---|---|---|
| Passe-temps | polonais-hubert-quantizer_8_epoch.pth | Base de Hubert | 1 | 8 | Pol | Hobis / Bark-Polish-Sémantique-Wav |
| C0untfloyd | allemand-hubert-quantizer_14_epoch.pth | Base de Hubert | 1 | 14 | Rotation | COUNTFLOYD / BARK-GERMAN-SEMANTIME-WAV-TRAIN |
from hubert . pre_kmeans_hubert import CustomHubert
import torchaudio
# Load the HuBERT model,
# checkpoint_path should work fine with data/models/hubert/hubert.pt for the default config
hubert_model = CustomHubert ( checkpoint_path = 'path/to/checkpoint' )
# Run the model to extract semantic features from an audio file, where wav is your audio file
wav , sr = torchaudio . load ( 'path/to/wav' ) # This is where you load your wav, with soundfile or torchaudio for example
if wav . shape [ 0 ] == 2 : # Stereo to mono if needed
wav = wav . mean ( 0 , keepdim = True )
semantic_vectors = hubert_model . forward ( wav , input_sample_hz = sr ) import torch
from hubert . customtokenizer import CustomTokenizer
# Load the CustomTokenizer model from a checkpoint
# With default config, you can use the pretrained model from huggingface
# With the default setup from HuBERTManager, this will be in data/models/hubert/tokenizer.pth
tokenizer = CustomTokenizer . load_from_checkpoint ( 'data/models/hubert/tokenizer.pth' ) # Automatically uses the right layers
# Process the semantic vectors from the previous HuBERT run (This works in batches, so you can send the entire HuBERT output)
semantic_tokens = tokenizer . get_token ( semantic_vectors )
# Congratulations! You now have semantic tokens which can be used inside of a speaker prompt file. Exécutez simplement les commandes de formation.
Un moyen simple de créer des données sémantiques et des vagues pour la formation est avec mon script: Bark-Data-Gen. Mais n'oubliez pas que la création des vagues prendra à peu près au même moment sinon plus que la création de la sémantique. Cela peut prendre un certain temps à générer à cause de cela.
Par exemple, si vous avez un ensemble de données avec des ZIP contenant des fichiers audio, un zip pour la sémantique et un pour les fichiers WAV. À l'intérieur d'un dossier appelé "littérature"
Vous devez exécuter process.py --path Literature --mode prepare -vous à extraire toutes les données à un répertoire
Vous devez exécuter process.py --path Literature --mode prepare2 pour créer des vecteurs Hubert Semantic, prêt pour la formation
Vous devriez exécuter process.py --path Literature --mode train pour la formation
Et lorsque votre modèle s'est suffisamment entraîné, vous pouvez exécuter process.py --path Literature --mode test pour tester le dernier modèle.
Je ne suis pas responsable de l'audio généré à l'aide de la sémantique créée par ce modèle. Ne l'utilisez pas à des fins illégales.