# 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)
Subscribe to:
Post Comments (Atom)
Live Cricket Scores ЁЯПП Live Cricket Scores All Live U...
-
рд░реЛрдЬ 28,000 рд░реБрдкрдпреЗ рдХрдорд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ - рдЯреЗрд╕реНрд▓рд╛ рдХрд╛ рдСрдлрд░ рд░реЛрдЬ 28,000 рд░реБрдкрдпреЗ рдХрдорд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ рдФрд░ рдХрд╛рдо рдмрд╕ рдкреИрджрд▓ рдЪрд▓рдиреЗ рдХрд╛! рдлрд░реНрдЬреАрд╡рд╛рдбрд╝рд╛ ...
-
BSSC Inter Level Admit Card 2024 - Exam Date Soon BSSC Inter Level Admit Card 2024: Exam Date Announcement Expect...
-
рдиреАрддреАрд╢ рдХреБрдорд╛рд░ рд╡рд┐рд╡рд╛рдж: рд╕реБрдкреНрд░реАрдо рдХреЛрд░реНрдЯ рд╕реЗ RJD рд╡рд┐рдзрд╛рдпрдХ рдХреЛ рд░рд╛рд╣рдд рдиреАрддреАрд╢ рдХреБрдорд╛рд░ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд▓реЗрдХрд░ R...
No comments:
Post a Comment