Как заставить SpeechSynthesisUtterance выбрать «ответ бота» и «текст пользователя»? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть рабочий чат-бот Python, реализованный на веб-странице с использованием флеш-фреймворка. Я пытаюсь сделать голосовой ввод / вывод с помощью SpeechSynthesisUtterance. Как заставить синтезатор определять ответ бота?

**FLASK**

app = Flask(__name__)

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

@app.route("/get")
def get_bot_response():
    userText = request.args.get('msg')
    return str(bot.get_response(userText))

if __name__ == "__main__":
    app.run(debug=False,port=5000)
**HTML**

<div id="chatbox">
  <p class="botText"><span>Hi! I'm ChatBot.</span></p>
  <p class="botText"><span>How Can I help You?.</span></p>
</div>
<div class="row" id="userInput">
  <input id="textInput" type="text" name="msg" placeholder="Message">
  <input id="buttonInput" type="submit" value="Send">
</div>
**SCRIPT**

<script>
  function getBotResponse() {
    var rawText = $("#textInput").val();
    var userHtml = '<p class="userText"><span>' + rawText + '</span></p>';
    $("#textInput").val("");
    $("#chatbox").append(userHtml);
    document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
    $.get("/get", { msg: rawText }).done(function(data) {
      var botHtml = '<p class="botText"><span>' + data + '</span></p>';
      $("#chatbox").append(botHtml);
      document.getElementById('userInput').scrollIntoView({block: 'start', behavior: 'smooth'});
    });
    var bot = new SpeechSynthesisUtterance('Hello World');
    window.speechSynthesis.speak(bot);
  }
  $("#textInput").keypress(function(e) {
      if(e.which == 13) {
          getBotResponse();
      }
  });
  $("#buttonInput").click(function() {
    getBotResponse();
  })
</script>

Я ожидаю, что var bot = new SpeechSynthesisUtterance('Hello World') будет говорить реальный ответ бота вместо hello world.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...