AI 聊天网站

该文章展示了一个使用Flask框架构建的Web应用,用户可以通过HTML表单输入文本,应用将文本发送到目标网站API并接收响应。响应的文本内容被用于生成MP3音频文件,利用EdgeTTS服务进行语音合成。音频文件随后在页面上播放。应用还涉及到了XMLHttpRequest的使用以及HTTP头的设置。
摘要由CSDN通过智能技术生成

原网站  已经隐藏 ,但是镜像的几百个

<!DOCTYPE html>
<html>
  <head>
    <title>Send Message</title>
  </head>
  <body>
    <h1>Send a Message</h1>
    <form action="/send_message" method="post">
      <label for="message">Message:</label>
      <input type="text" id="message" name="message"><br><br>
      <input type="submit" value="Send">
    </form>

    <audio controls>
      <source src="/audio" type="audio/mpeg">
    </audio>

    <script>
        function sendText() {
            var prompt = document.getElementById("message").value;
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    var audioPlayer = document.getElementById("audioPlayer");
                    audioPlayer.src = "data:audio/mpeg;base64," + this.responseText;
                    audioPlayer.play();
                }
            };
            xhttp.open("POST", "/send_message", true);
            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhttp.send("message=" + prompt);
        }
    </script>

  </body>
</html>

from flask import Flask, render_template, request, send_file
import requests
import json
import asyncio
import edge_tts
import base64

app = Flask(__name__)

url = "http:// 目标网站/api/chat_message/send"

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
    "Origin": "目标网站",
    "Referer": 目标网站"
}

# 定义文本、声音和输出文件名
VOICE = "zh-CN-XiaoyiNeural"
OUTPUT_FILE = "E:/Time/code/Python/code/AI/test_02/test.mp3"

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/send_message', methods=['POST'])
def send_message():
    prompt = request.form['message']
    data = {
        "prompt": prompt,
        "options": {
            "conversationId": "a8e776bd-0a27-4b83-904e-caaf5b2f889b",
            "parentMessageId": "67e98289-39dd-4fd4-9759-6cb41874deda"
        }
    }

    response = requests.post (url=url, json=data, headers=headers)

    lines = response.text.strip ().split ("\n")
    last_line = lines[-1].strip ()
    response_dict = json.loads (last_line)
    text = response_dict["text"]
    print(text)

    async def _main() -> None:
        communicate = edge_tts.Communicate(text, VOICE)
        await communicate.save(OUTPUT_FILE)

    if __name__ == "__main__":
        asyncio.run(_main())

    return render_template('index.html')

@app.route("/audio")
def audio():
    return send_file(OUTPUT_FILE, mimetype="audio/mpeg")

if __name__ == "__main__":
    app.run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值