如何在运行python进程和javascript之间传递数据

时间:2016-09-28 03:25:05

标签: javascript python sockets python-3.x voice

我正在使用python开发个人语音助手应用程序,我想为其添加一个Web界面,以允许从任何设备远程使用它。我已经有了它的Python方面,我希望将它与Web界面混合使用。也许通过在线程中侦听套接字。我对Python很有经验,但对JS没有那么多。

我理想情况下需要一个正在运行的python进程。然后HTML JS客户端记录用户的语音,将其转换为文本并将其发送到python服务器。 Python服务器接收命令并运行一个函数,并返回一个json数据,如:

{
'reply':'All done, here is your result', 
'data':someBigHTMLoutput, 
'audio':path to generated mp3 audio file of speech using customized voice
}

例如,Html可以是一个包含已发现的书籍或电影的大表,或者其他一些报告。或者,如果命令要关灯,它可以是空白的。

然后JS需要接收这些数据,替换内容' div与html数据,显示AI答案文本和播放服务器生成的音频文件。等待下一个命令。

所以,从这一切我想知道如何在没有页面刷新的情况下接近js客户端和python服务器数据交换?

仅仅使用python监听套接字是否足够?但是,我如何将数据返回给JS?

另外一个问题是:是否可以在函数执行之前和期间推送一些数据?目前,我的Python语音助手有时会说“#39;功能执行之前,期间和之后的事情。有没有办法将此声音发送到html页面?如果不是,我会重新认为人工智能的逻辑答案只能在工作完成后才回复。

我花了很多时间在谷歌搜索这个,但我只是对一个庞大的框架选择感到困惑,而我甚至不确定我是否需要这些相对简单的任务。

谢谢! Python 3.4

1 个答案:

答案 0 :(得分:0)

我最终使用了Flask,Flask-SocketIO和带有socketio的JavaScript。

像魅力一样工作。谢谢。它允许我随时发出事件,这使得构建基于HTML + JS的前端UI非常容易,与python服务器实时交互。