Spaces:
Configuration error
Configuration error
| #!/usr/bin/env python3 | |
| """ | |
| Script para gerar audio com StyleTTS2 e clonagem de voz. | |
| Uso: python generate_audio.py --text "Seu texto aqui" --voice voice_ref.wav --output audio.wav | |
| """ | |
| import argparse | |
| import os | |
| # Fix para PyTorch 2.6+ com weights_only | |
| import torch | |
| original_load = torch.load | |
| def patched_load(*args, **kwargs): | |
| kwargs['weights_only'] = False | |
| return original_load(*args, **kwargs) | |
| torch.load = patched_load | |
| def generate_audio(text: str, output_path: str, voice_ref: str = None, diffusion_steps: int = 10): | |
| """Gera audio usando StyleTTS2.""" | |
| print(f"Carregando StyleTTS2...") | |
| from styletts2 import tts | |
| my_tts = tts.StyleTTS2() | |
| print(f"Gerando audio...") | |
| print(f" Texto: {text[:50]}...") | |
| print(f" Voz de referencia: {voice_ref or 'padrao'}") | |
| if voice_ref and os.path.exists(voice_ref): | |
| wav = my_tts.inference( | |
| text, | |
| target_voice_path=voice_ref, | |
| diffusion_steps=diffusion_steps | |
| ) | |
| else: | |
| wav = my_tts.inference( | |
| text, | |
| diffusion_steps=diffusion_steps | |
| ) | |
| # Salvar audio | |
| import scipy.io.wavfile as wavfile | |
| wavfile.write(output_path, 24000, wav) | |
| print(f"Audio salvo em: {output_path}") | |
| return output_path | |
| def main(): | |
| parser = argparse.ArgumentParser(description='Gerar audio com StyleTTS2') | |
| parser.add_argument('--text', '-t', required=True, help='Texto para converter em audio') | |
| parser.add_argument('--output', '-o', default='output.wav', help='Arquivo de saida') | |
| parser.add_argument('--voice', '-v', help='Arquivo WAV de referencia para clonagem de voz') | |
| parser.add_argument('--steps', '-s', type=int, default=10, help='Passos de difusao (mais = melhor qualidade)') | |
| args = parser.parse_args() | |
| generate_audio( | |
| text=args.text, | |
| output_path=args.output, | |
| voice_ref=args.voice, | |
| diffusion_steps=args.steps | |
| ) | |
| if __name__ == '__main__': | |
| main() | |