Spaces:
Running
Running
import os | |
import torch | |
import torchaudio | |
import spaces | |
from generator import Segment, load_csm_1b | |
from huggingface_hub import login | |
def login_huggingface(): | |
"""Đăng nhập vào Hugging Face Hub sử dụng token từ biến môi trường hoặc nhập từ người dùng""" | |
hf_token = os.environ.get("HF_TOKEN") | |
if not hf_token: | |
print("Không tìm thấy HF_TOKEN trong biến môi trường.") | |
hf_token = input("Vui lòng nhập Hugging Face token của bạn: ") | |
if hf_token: | |
print("Đang đăng nhập vào Hugging Face Hub...") | |
login(token=hf_token) | |
print("Đã đăng nhập thành công!") | |
return True | |
else: | |
print("Không có token. Một số mô hình có thể không truy cập được.") | |
return False | |
def generate_test_audio(text, speaker_id, device): | |
"""Tạo âm thanh kiểm tra sử dụng ZeroGPU""" | |
generator = load_csm_1b(device=device) | |
print("Đã tải xong mô hình!") | |
print(f"Đang tạo âm thanh cho văn bản: '{text}'") | |
audio = generator.generate( | |
text=text, | |
speaker=speaker_id, | |
context=[], | |
max_audio_length_ms=10000, | |
temperature=0.9, | |
topk=50 | |
) | |
return audio, generator.sample_rate | |
def test_model(): | |
print("Kiểm tra mô hình CSM-1B...") | |
# Đăng nhập vào Hugging Face Hub | |
login_huggingface() | |
# Kiểm tra xem có GPU không và cấu hình thiết bị phù hợp | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
print(f"Sử dụng thiết bị: {device}") | |
# Tải mô hình CSM-1B và tạo âm thanh | |
print("Đang tải mô hình CSM-1B...") | |
try: | |
# Sử dụng ZeroGPU để tạo âm thanh | |
text = "Xin chào, đây là bài kiểm tra mô hình CSM-1B." | |
speaker_id = 0 | |
audio, sample_rate = generate_test_audio(text, speaker_id, device) | |
# Lưu âm thanh thành file | |
output_path = "test_output.wav" | |
torchaudio.save(output_path, audio.unsqueeze(0), sample_rate) | |
print(f"Đã lưu âm thanh vào file: {output_path}") | |
print("Kiểm tra hoàn tất!") | |
except Exception as e: | |
print(f"Lỗi khi kiểm tra mô hình: {e}") | |
print("Vui lòng kiểm tra lại token và quyền truy cập của bạn.") | |
if __name__ == "__main__": | |
test_model() |