Orpheus Awq
O
Orpheus Awq
由YaTharThShaRma999開發
Orpheus-3b FT的4位AWQ量化版本,專為文本轉語音任務優化,支持語音克隆功能。
下載量 48
發布時間 : 4/24/2025
模型概述
該模型是一個經過4位AWQ量化的文本轉語音模型,能夠生成高質量的語音輸出,並支持通過參考音頻進行語音克隆。
模型特點
高效量化
採用4位AWQ量化技術,顯著減少模型大小和計算資源需求。
語音克隆
支持通過參考音頻文件進行語音克隆,生成具有相似音色的語音。
快速推理
推薦使用lmdeploy進行推理,安裝簡單且速度極快。
模型能力
文本轉語音
語音克隆
高質量語音生成
使用案例
語音合成
個性化語音生成
通過參考音頻克隆特定音色,生成個性化語音。
生成具有相似音色的高質量語音輸出。
語音助手
為語音助手生成自然流暢的語音響應。
提升語音助手的自然度和用戶體驗。
🚀 Orpheus-3b FT 4bit AWQ量化版本
這是Orpheus-3b FT的4bit AWQ量化版本。我推薦使用lmdeploy,因為它易於安裝,並且速度非常快。以下是加載模型、處理音頻文件以進行語音克隆和生成語音的代碼。
🚀 快速開始
✨ 主要特性
- 提供Orpheus-3b FT的4bit AWQ量化版本。
- 推薦使用易於安裝且速度快的lmdeploy。
- 包含加載模型、語音克隆和語音生成的完整代碼。
📦 安裝指南
使用以下命令安裝snac和lmdeploy:
pip install snac lmdeploy
💻 使用示例
基礎用法
以下是加載模型的代碼:
## Install snac and lmdeploy with pip install snac lmdeploy
from lmdeploy import pipeline, TurbomindEngineConfig, GenerationConfig
from transformers import AutoTokenizer
from snac import SNAC
tp = 1 ## change if you have multiple gpus
cache_max_entry_count = 0.2 ## how much vram is reserved for context
engine_config = TurbomindEngineConfig(model_format='awq', dtype='float16', cache_max_entry_count=cache_max_entry_count, tp=tp, quant_policy=8)
pipe = pipeline("YaTharThShaRma999/orpheus_awq", backend_config=engine_config)
tokeniser = AutoTokenizer.from_pretrained("unsloth/orpheus-3b-0.1-ft-unsloth-bnb-4bit")
snac_model = SNAC.from_pretrained("hubertsiuzdak/snac_24khz").to('cuda:0')
高級用法
以下是將語音文件轉換為snac令牌以進行語音克隆的代碼:
import librosa
import torch
from IPython.display import Audio
import gc
import torch
from pydub import AudioSegment
tokenizer = tokeniser
my_wav_file_is = "test.mp3" ## path to your reference audio file
and_the_transcript_is = "" ## transcript of the audio file
filename = my_wav_file_is
audio_array, sample_rate = librosa.load(filename)
def tokenise_audio(waveform):
waveform = torch.from_numpy(waveform).unsqueeze(0)
waveform = waveform.to(dtype=torch.float32)
waveform = waveform.unsqueeze(0).to('cuda:0')
with torch.inference_mode():
codes = snac_model.encode(waveform)
all_codes = []
for i in range(codes[0].shape[1]):
all_codes.append(codes[0][0][i].item()+128266)
all_codes.append(codes[1][0][2*i].item()+128266+4096)
all_codes.append(codes[2][0][4*i].item()+128266+(2*4096))
all_codes.append(codes[2][0][(4*i)+1].item()+128266+(3*4096))
all_codes.append(codes[1][0][(2*i)+1].item()+128266+(4*4096))
all_codes.append(codes[2][0][(4*i)+2].item()+128266+(5*4096))
all_codes.append(codes[2][0][(4*i)+3].item()+128266+(6*4096))
return all_codes
myts = tokenise_audio(audio_array) ## the snac tokens
gc.collect()
torch.cuda.empty_cache()
以下是生成語音並使用IPython顯示的代碼:
from lmdeploy import GenerationConfig
import gc
import torch
### sampling params are heavily experimental, try to experiment with them.
gen_config = GenerationConfig(top_p=0.7,
top_k=50,
temperature=0.2,
max_new_tokens=1024,
min_new_tokens=30,
stop_token_ids=[128009, 128001, 49158, 128258],
repetition_penalty=2.0,
skip_special_tokens=False,
do_sample=True,
min_p=0.6)
prompt = and_the_transcript_is + "<laugh> So um hey, like what's up??" ## put prompt here
voice_name = "zac" ## experimental, might be removed or not
response2 = pipe([f"<custom_token_3><|begin_of_text|>{voice_name}: {prompt}<|eot_id|><custom_token_4><custom_token_5><custom_token_1>" + tokeniser.decode(myts)], gen_config=gen_config)
gc.collect()
torch.cuda.empty_cache()
generated_ids = tokeniser.encode(response2[0].text, return_tensors='pt', add_special_tokens=False)
token_to_find = 128257
token_to_remove = 128258
token_indices = (generated_ids == token_to_find).nonzero(as_tuple=True)
if len(token_indices[1]) > 0:
last_occurrence_idx = token_indices[1][-1].item()
cropped_tensor = generated_ids[:, last_occurrence_idx+1:]
else:
cropped_tensor = generated_ids
mask = cropped_tensor != token_to_remove
processed_rows = []
for row in cropped_tensor:
masked_row = row[row != token_to_remove]
processed_rows.append(masked_row)
code_lists = []
for row in processed_rows:
row_length = row.size(0)
new_length = (row_length // 7) * 7
trimmed_row = row[:new_length]
trimmed_row = [t - 128266 for t in trimmed_row]
code_lists.append(trimmed_row)
def redistribute_codes(code_list):
layer_1 = []
layer_2 = []
layer_3 = []
for i in range((len(code_list)+1)//7):
layer_1.append(code_list[7*i])
layer_2.append(code_list[7*i+1]-4096)
layer_3.append(code_list[7*i+2]-(2*4096))
layer_3.append(code_list[7*i+3]-(3*4096))
layer_2.append(code_list[7*i+4]-(4*4096))
layer_3.append(code_list[7*i+5]-(5*4096))
layer_3.append(code_list[7*i+6]-(6*4096))
codes = [torch.tensor(layer_1).unsqueeze(0).to('cuda:0'),
torch.tensor(layer_2).unsqueeze(0).to('cuda:0'),
torch.tensor(layer_3).unsqueeze(0).to('cuda:0')]
audio_hat = snac_model.decode(codes)
return audio_hat
my_samples = []
for code_list in code_lists:
samples = redistribute_codes(code_list)
my_samples.append(samples)
from IPython.display import display, Audio
display(Audio(samples.detach().squeeze().to("cpu").numpy(), rate=24000))
del my_samples,samples, code_lists, mask, cropped_tensor, processed_rows
gc.collect()
torch.cuda.empty_cache()
📄 許可證
本項目採用Apache-2.0許可證。
Kokoro 82M
Apache-2.0
Kokoro是一款擁有8200萬參數的開源文本轉語音(TTS)模型,以其輕量級架構和高音質著稱,同時具備快速和成本效益高的特點。
語音合成 英語
K
hexgrad
2.0M
4,155
XTTS V2
其他
ⓍTTS是一款革命性的語音生成模型,僅需6秒音頻片段即可實現跨語言音色克隆,支持17種語言。
語音合成
X
coqui
1.7M
2,630
F5 TTS
F5-TTS 是一個基於流匹配的語音合成模型,專注於流暢且忠實的語音合成,特別適用於童話講述等場景。
語音合成
F
SWivid
851.49k
1,000
Bigvgan V2 22khz 80band 256x
MIT
BigVGAN是基於大規模訓練的通用神經聲碼器,能夠從梅爾頻譜生成高質量音頻波形。
語音合成
B
nvidia
503.23k
16
Speecht5 Tts
MIT
基於LibriTTS數據集微調的SpeechT5語音合成(文本轉語音)模型,支持高質量的文本轉語音轉換。
語音合成
Transformers

S
microsoft
113.83k
760
Dia 1.6B
Apache-2.0
Dia是由Nari實驗室開發的16億參數文本轉語音模型,能夠直接從文本生成高度逼真的對話,支持情感和語調控制,並能生成非語言交流內容。
語音合成
Safetensors 英語
D
nari-labs
80.28k
1,380
Csm 1b
Apache-2.0
CSM是Sesame開發的10億參數規模語音生成模型,可根據文本和音頻輸入生成RVQ音頻編碼
語音合成
Safetensors 英語
C
sesame
65.03k
1,950
Kokoro 82M V1.1 Zh
Apache-2.0
Kokoro 是一個開放權重的小型但功能強大的文本轉語音(TTS)模型系列,新增了來自專業數據集的100名中文說話人數據。
語音合成
K
hexgrad
51.56k
112
Indic Parler Tts
Apache-2.0
Indic Parler-TTS 是 Parler-TTS Mini 的多語言印度語言擴展版本,支持21種語言,包括多種印度語言和英語。
語音合成
Transformers 支持多種語言

I
ai4bharat
43.59k
124
Bark
MIT
Bark是由Suno創建的基於Transformer的文本轉音頻模型,能生成高度逼真的多語言語音、音樂、背景噪音和簡單音效。
語音合成
Transformers 支持多種語言

B
suno
35.72k
1,326
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98