Spaces:
Sleeping
Sleeping
| from flask import Flask, request, send_file, jsonify | |
| from gtts import gTTS | |
| import io | |
| from pydub import AudioSegment | |
| app = Flask(__name__) | |
| chuyenkhoan = [] | |
| def webhook(): | |
| # Lấy dữ liệu JSON gửi đến | |
| data = request.get_json() | |
| # In dữ liệu nhận được ra console (hoặc xử lý theo nhu cầu) | |
| print("Received webhook data:", data) | |
| chuyenkhoan.append(data) | |
| # Trả về phản hồi JSON cho phía gửi | |
| return jsonify({"status": "success"}), 200 | |
| def currentCK(): | |
| # Trả về số lượng chuyển khoản hiện tại | |
| return jsonify({"currentCK": len(chuyenkhoan)}), 200 | |
| def lastCK(): | |
| # trả về chuyển khoản cuối cùng | |
| if len(chuyenkhoan) == 0: | |
| return jsonify({"status": "no data"}), 404 | |
| last_transaction = chuyenkhoan[-1] | |
| return jsonify(last_transaction), 200 | |
| # giao dien index kiem tra danh sach chuyen khoan | |
| def get_chuyenkhoan(): | |
| # Trả về danh sách chuyển khoản dưới dạng JSON | |
| return jsonify(chuyenkhoan), 200 | |
| # Giao diện chính | |
| def index(): | |
| return ''' | |
| <h1>Chuyển Khoản</h1> | |
| <p>Để xem danh sách chuyển khoản, hãy truy cập <a href="/chuyenkhoan">/chuyenkhoan</a></p> | |
| ''' | |
| def tts(): | |
| text = request.args.get('text', '').strip() | |
| if not text: | |
| return jsonify({"error": "Bạn cần truyền tham số 'text'"}), 400 | |
| try: | |
| # 1) Generate MP3 from gTTS | |
| tts = gTTS(text=text, lang='vi') | |
| mp3_buffer = io.BytesIO() | |
| tts.write_to_fp(mp3_buffer) | |
| mp3_buffer.seek(0) | |
| # 2) Load into pydub, tăng gain +20 dB (tuỳ chỉnh) | |
| sound = AudioSegment.from_file(mp3_buffer, format="mp3") | |
| loud_sound = sound + 30 # +20 dB, bạn có thể tăng thêm nếu cần | |
| # 3) Xuất lại MP3 vào buffer | |
| out_buffer = io.BytesIO() | |
| loud_sound.export(out_buffer, format="mp3") | |
| out_buffer.seek(0) | |
| # 4) Trả về buffer đã tăng gain | |
| return send_file( | |
| out_buffer, | |
| mimetype='audio/mpeg', | |
| as_attachment=False, | |
| download_name='tts.mp3' | |
| ) | |
| except Exception as e: | |
| return jsonify({"error": str(e)}), 500 | |
| if __name__ == '__main__': | |
| app.run(port=7860, host='0.0.0.0', debug=True) | |