from vietTTS.hifigan.mel2wave import mel2wave from vietTTS.nat.text2mel import text2mel from vietTTS import nat_normalize_text import numpy as np import gradio as gr import os def text_to_speech(text): # prevent too long text if len(text) > 500: text = text[:500] text = nat_normalize_text(text) mel = text2mel( text, "lexicon.txt", 0.2, "acoustic_latest_ckpt.pickle", "duration_latest_ckpt.pickle", ) wave = mel2wave(mel, "config.json", "hk_hifi.pickle") return (wave * (2**15)).astype(np.int16) def speak(text): y = text_to_speech(text) return 16_000, y title = "tacotron2" description = "text-to-speech demo" gr.Interface( fn=speak, inputs="text", outputs="audio", title = title, examples = [ "Khi doanh nghiệp của bạn có lịch làm việc khác thường, chẳng hạn như lúc có sự kiện đặc biệt hoặc vào ngày lễ, bạn có thể nhập trước giờ đặc biệt để cho khách hàng biết thời điểm doanh nghiệp mở cửa.", "Sách là viên ngọc tri thức của nhân loại và có ảnh hưởng rất lớn tới cuộc sống con người. Nhờ đọc được những cuốn sách hay mà người ta có thể thay đổi cách sống, cải thiện tinh thần và có những định hướng đúng đắn cho sự nghiệp. ", "Đây là giọng đọc nhân tạo", ], description=description, theme="default", allow_flagging="never", ).launch(debug=False)