🚀 Spark TTS Vietnamese
Spark-TTS是一個先進的文本轉語音系統,它藉助大語言模型(LLM)的強大能力,實現了高度準確且自然的語音合成。該系統專為研究和生產使用而設計,具有高效、靈活和強大的特點。此模型是基於viVoice越南語數據集進行訓練的。
🚀 快速開始
安裝依賴
首先,安裝所需的軟件包:
pip install --upgrade transformers accelerate
✨ 主要特性
- 高度準確:利用大語言模型(LLM)實現高度準確的語音合成。
- 自然流暢:生成的語音自然度高,接近人類發音。
- 高效靈活:適用於研究和生產等多種場景。
- 可微調:可以使用任何數據集對模型進行微調,以提高質量或支持新的語言。
📦 安裝指南
安裝所需的軟件包:
pip install --upgrade transformers accelerate
💻 使用示例
基礎用法
我們對代碼進行了定製,你可以使用Hugging Face的Transformer庫進行推理,無需安裝其他任何東西。
from transformers import AutoProcessor, AutoModel, AutoTokenizer
import soundfile as sf
import torch
import numpy as np
device = "cuda"
model_id = "DragonLineageAI/Vi-SparkTTS-0.5B"
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = AutoModel.from_pretrained(model_id, trust_remote_code=True).eval()
processor.model = model
prompt_audio_path = "path_to_audio_path"
prompt_transcript = "text corresponding to prompt audio"
text_input = "xin chào mọi người chúng tôi là Nguyễn Công Tú Anh và Chu Văn An đến từ dragonlineageai"
inputs = processor(
text=text_input.lower(),
prompt_speech_path=prompt_audio_path,
prompt_text=prompt_transcript,
return_tensors="pt"
).to(device)
global_tokens_prompt = inputs.pop("global_token_ids_prompt", None)
with torch.no_grad():
output_ids = model.generate(
**inputs,
max_new_tokens=3000,
do_sample=True,
temperature=0.8,
top_k=50,
top_p=0.95,
eos_token_id=processor.tokenizer.eos_token_id,
pad_token_id=processor.tokenizer.pad_token_id
)
output_clone = processor.decode(
generated_ids=output_ids,
global_token_ids_prompt=global_tokens_prompt,
input_ids_len=inputs["input_ids"].shape[-1]
)
sf.write("output_cloned.wav", output_clone["audio"], output_clone["sampling_rate"])
高級用法
你可以使用任何數據集對該模型進行微調,以提高質量或訓練支持新的語言。訓練代碼
📄 許可證
本項目採用CC BY-NC-ND 4.0許可證。