Viewing File: /home/ubuntu/codegamaai-test/tts_openvoice/main_tts.py
import os
import torch
from OpenVoice.openvoice import se_extractor
from OpenVoice.openvoice.api import ToneColorConverter
import time
import uuid
device = "cuda:0" if torch.cuda.is_available() else "cpu"
output_dir = 'outputs_v2'
os.makedirs(output_dir, exist_ok=True)
from melo.api import TTS
src_path = f'{output_dir}/tmp.wav'
text = "Did you ever hear about a story of a small elephant? It was a very interesting story."
# Speed is adjustable
speed = 1.0
languages = ['EN_NEWEST', 'EN', 'ES', 'FR', 'ZH', 'JP', 'KR']
language = 'EN_NEWEST'
model = TTS(language=language, device=device)
speaker_ids = model.hps.data.spk2id
print("Speaker IDs:")
print(speaker_ids)
# for speaker_key in speaker_ids.keys():
# speaker_id = speaker_ids[speaker_key]
# speaker_key = speaker_key.lower().replace('_', '-')
# model.tts_to_file(text, speaker_id, src_path, speed=speed)
def main_tts(text, language, speaker_id, user_id, vid, speed=1.0):
# Create a unique id for the audio file
output_dir = os.path.join(os.environ['DATASET_STORE'], str(user_id), str(vid), 'processed_audio')
output_file_name = f'{user_id}_{vid}_{str(uuid.uuid4())}.wav'
output_file_path = os.path.join(output_dir, output_file_name)
output_file_url = os.path.join(os.environ['OUTPUT_MEDIA_URL'], 'data', str(user_id), str(vid), 'processed_audio', output_file_name)
os.makedirs(output_dir, exist_ok=True)
languages_list = ['EN_NEWEST', 'EN', 'ES', 'FR', 'ZH', 'JP', 'KR']
if language not in languages_list:
return {"status": 0, "message": "Language not supported", "output_file": None}
model.tts_to_file(text, speaker_id, output_file_path, speed=speed)
return {"status": 1, "message": "Audio file generated successfully", "output_file": output_file_path, "output_file_url": output_file_url}
Back to Directory
File Manager