通信でエラーになると動作しないため、エラーをつぶす作業を続ける
Python側で受信をjsonにすると受信できない
よって
data= request.get_json() → data= request.get_data()
これはByte型なので、jsonに変換
data_json = json.loads(data.decode('utf8'))
CeVIO AI制御側でエラー
talker2.Speak(text).wait() → talker2.Speak(text).wait
これで音声まで出た!
javascript側(変更なし)
url_top ='http://localhost:5000/room/talk/data';
$(function(){
$.ajax({
url: url_top,
type: 'POST',
data: send_data,
datatype: 'json',
}).done(function(data){
messages.textContent += 'ajax done\n';
messages.textContent += `Return data : ${data}\n`;
response_fee = data;
onClickSend();
}).fail(function(){
messages.textContent += 'ajax failed\n';
});
});
python側
from flask import Flask, request
from flask_cors import CORS
import json
import CeVIO_control
app= Flask(__name__)
CORS(app)
data_json = ""
talk_from_client = ""
CeVIO_control.CeVIO_init()
@app.route('/room/talk/data', methods= ['GET', 'POST'])
def get_json():
print("got some data")
# read json + reply
data= request.get_data()
global data_json
data_json = json.loads(data.decode('utf8'))
print(data_json)
talk_from_client = data_json["Talk_data"]
print(talk_from_client)
print("after_comm")
CeVIO_control.CeVIO_emotion_set(100,0,0,0,0)
CeVIO_control.CeVIO_phoneme_data_get(talk_from_client)
CeVIO_control.CeVIO_playback(talk_from_client)
return data
if __name__== '__main__':
app.run()
左側がTalk画面(つまりサーバー側)、左側がClient画面(ここでユーザーは入力して会話する)
(CPUパワーが非力なので、CeVIOの音声合成に物凄く時間がかかるし、時々失敗する)
VPNを使って外部から接続してみると…音声が出ない
OBSのレベルメーターは振れているので、ここまではきている
とすると、OBS → Virtual Cable → Chromeの系がおかしい
結論から言えば、OBSの音声モニター設定が無効になっていた
OBSの音声キャプチャの歯車をクリックして、オーディオの詳細プロパティを開き、
音声入力キャプチャの音声モニタリングを「モニターと出力」に設定すればOK
まだまだ体裁は整えないといけないが、基本的なところは動いた!
Comments