fcyai
init
fc31c67
raw
history blame
No virus
1.75 kB
import os, sys
if sys.platform == "darwin":
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
now_dir = os.getcwd()
sys.path.append(now_dir)
from dotenv import load_dotenv
load_dotenv("sha256.env")
import wave
import ChatTTS
from IPython.display import Audio
from tools.logger import get_logger
logger = get_logger("Command")
def save_wav_file(wav, index):
wav_filename = f"output_audio_{index}.wav"
# Convert numpy array to bytes and write to WAV file
wav_bytes = (wav * 32768).astype('int16').tobytes()
with wave.open(wav_filename, "wb") as wf:
wf.setnchannels(1) # Mono channel
wf.setsampwidth(2) # Sample width in bytes
wf.setframerate(24000) # Sample rate in Hz
wf.writeframes(wav_bytes)
logger.info(f"Audio saved to {wav_filename}")
def main():
# Retrieve text from command line argument
text_input = sys.argv[1] if len(sys.argv) > 1 else "<YOUR TEXT HERE>"
logger.info("Received text input: %s", text_input)
chat = ChatTTS.Chat(get_logger("ChatTTS"))
logger.info("Initializing ChatTTS...")
if chat.load_models():
logger.info("Models loaded successfully.")
else:
logger.error("Models load failed.")
sys.exit(1)
texts = [text_input]
logger.info("Text prepared for inference: %s", texts)
wavs = chat.infer(texts, use_decoder=True)
logger.info("Inference completed. Audio generation successful.")
# Save each generated wav file to a local file
for index, wav in enumerate(wavs):
save_wav_file(wav, index)
return Audio(wavs[0], rate=24_000, autoplay=True)
if __name__ == "__main__":
logger.info("Starting the TTS application...")
main()
logger.info("TTS application finished.")