# tts_onefile.py import io import base64 import torch from flask import Flask, request, jsonify, render_template_string from flask_cors import CORS from transformers import VitsModel, AutoTokenizer import numpy as np from scipy.io.wavfile import write # Initialize Flask app app = Flask(__name__) CORS(app) # Load AI models model = VitsModel.from_pretrained("facebook/mms-tts-eng") tokenizer = AutoTokenizer.from_pretrained("facebook/mms-tts-eng") # In-memory storage for demo users = {} voice_clones = {} HTML_TEMPLATE = """ AI TTS Demo
""" @app.route('/') def home(): return render_template_string(HTML_TEMPLATE) @app.route('/tts', methods=['POST']) def text_to_speech(): data = request.json text = data['text'][:500] # Limit text length for demo # Generate speech inputs = tokenizer(text, return_tensors="pt") with torch.no_grad(): output = model(**inputs).waveform audio = output.cpu().numpy().squeeze() # Simple speed adjustment speed = float(data.get('speed', 1.0)) audio = audio[::int(1/speed)] # Convert to WAV buffer = io.BytesIO() write(buffer, 16000, (audio * 32767).astype(np.int16)) return jsonify({ 'audio': base64.b64encode(buffer.getvalue()).decode('utf-8'), 'format': 'audio/wav' }) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)

No comments:

Post a Comment

Live Cricket Scores ЁЯПП Live Cricket Scores All Live U...