Views
No views yet

1
2!git clone https://github.com/saheedniyi02/yarngpt.git
3
4pip install outetts uroman
5
6import os
7import re
8import json
9import torch
10import inflect
11import random
12import uroman as ur
13import numpy as np
14import torchaudio
15import IPython
16from transformers import AutoModelForCausalLM, AutoTokenizer
17from outetts.wav_tokenizer.decoder import WavTokenizer
18
19
20!wget https://huggingface.co/novateur/WavTokenizer-medium-speech-75token/resolve/main/wavtokenizer_mediumdata_frame75_3s_nq1_code4096_dim512_kmeans200_attn.yaml
21!gdown 1-ASeEkrn4HY49yZWHTASgfGFNXdVnLTt
22
23
24from yarngpt.audiotokenizer import AudioTokenizerV2
25
26tokenizer_path="saheedniyi/YarnGPT2"
27wav_tokenizer_config_path="/content/wavtokenizer_mediumdata_frame75_3s_nq1_code4096_dim512_kmeans200_attn.yaml"
28wav_tokenizer_model_path = "/content/wavtokenizer_large_speech_320_24k.ckpt"
29
30
31audio_tokenizer=AudioTokenizerV2(
32 tokenizer_path,wav_tokenizer_model_path,wav_tokenizer_config_path
33 )
34
35
36model = AutoModelForCausalLM.from_pretrained(tokenizer_path,torch_dtype="auto").to(audio_tokenizer.device)
37
38#change the text
39text="The election was won by businessman and politician, Moshood Abiola, but Babangida annulled the results, citing concerns over national security."
40
41# change the language and voice
42prompt=audio_tokenizer.create_prompt(text,lang="english",speaker_name="idera")
43
44input_ids=audio_tokenizer.tokenize_prompt(prompt)
45
46output = model.generate(
47 input_ids=input_ids,
48 temperature=0.1,
49 repetition_penalty=1.1,
50 max_length=4000,
51 #num_beams=5,# using a beam size helps for the local languages but not english
52 )
53
54codes=audio_tokenizer.get_codes(output)
55audio=audio_tokenizer.get_audio(codes)
56IPython.display.Audio(audio,rate=24000)
57torchaudio.save(f"Sample.wav", audio, sample_rate=24000)
581@misc{yarngpt2025,
2 author = {Saheed Azeez},
3 title = {YarnGPT: Nigerian-Accented English Text-to-Speech Model},
4 year = {2025},
5 publisher = {Hugging Face}
6}