import numpy as np
from vieneu import Vieneu
# Initialize in Standard mode (Default - Highest quality)
tts = Vieneu(
emotion="natural"
)
# Using a specific Preset Voice
# - Ngọc Lan — nữ, giọng dịu dàng (ID: Ngọc Lan)
# - Gia Bảo — nam, giọng mượt mà (ID: Gia Bảo)
# - Thái Sơn — nam, giọng chắc khỏe (ID: Thái Sơn)
# - Đức Trí — nam, giọng rõ ràng (ID: Đức Trí)
# - Mỹ Duyên — nữ, giọng mượt mà (ID: Mỹ Duyên)
# - Trúc Ly — nữ, giọng trẻ trung (ID: Trúc Ly)
# - Xuân Vĩnh — nam, giọng vui tươi (ID: Xuân Vĩnh)
# - Trọng Hữu — nam, giọng uyên bác (ID: Trọng Hữu)
# - Bình An — nam, giọng điềm đạm (ID: Bình An)
# - Ngọc Linh — nữ, giọng tươi sáng (ID: Ngọc Linh)
voice_data = tts.get_preset_voice("Trúc Ly")
audio_chunks = []
with open("text.txt", "r") as f:
lines = f.readlines()
count = 1
total = len(lines)
for line in lines:
print(f"\rWorking on chunk {count}/{total}", end="", flush=True)
if line.strip():
audio_chunk = tts.infer(text=line, voice=voice_data)
audio_chunks.append(audio_chunk)
else:
silence = np.zeros(int(24000 * 0.3), dtype=np.float32)
audio_chunks.append(silence)
count += 1
audio_full = np.concatenate(audio_chunks)
tts.save(audio_full, "output_Full.wav")
print("💾 Saved to output_Full.wav")