当初のシステムのイメージはこんな感じ
漠然としたイメージで実現性がなくて困っていた
ヒントはこの記事
これと自分でやってみた「ずんだもんの声ならちゃんと動作する」という事実
つまりApachとは別にPC内にサーバーを立て、クライアントPCからHTTPでアクセスさせればいい
Flaskなら簡単にサーバーを作れるし、どうもCORSも回避してくれるみたい
これをシステム図にすると
こんな感じかな…
2つのサーバーのポート番号を変えないといけないだろう
あとCeVIO AIで作ったFeeの音声ファイルは置いておくだけでFlask経由でアクセスできるのか?
音声ファイルのアクセスをやってみた
Flask側のポート番号を8080とし、ATERMのポートマッピングでアクセス許可指定
Pythonで以下のように指定し、音声ファイルをフォルダに置く
from flask import Flask, send_from_directory
app = Flask(__name__)
@app.route('/')
def fnc_a():
return "rootページです"
@app.route('/sub')
def fnc_1():
return "subページです"
@app.route("/music/<path:filename>")
def play(filename):
return send_from_directory("music", filename)
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=8080)
やってみると、外部からも音声ファイルにアクセスできた
音声の切り替えをやってみた
Python-Flaskを実行状態のまま、同一ファイル名でファイルを入れ替え、ブラウザで再生して確認すると…
どうもキャッシュが残っているみたいで、変える前の音声が流れる
ただ、ダウンロードすると新しい音声が得られるので、切り替えは正常に行われているようだ
またエラーにもならないのでOK!
Unityから呼び出してみた
UnityのAudioPlayerのURLを
に変更
Unityのウインドウではちゃんと動くが、WebGLでBuild and Runすると音声が出ない
やはりこの単純な記載ではCORSでひっかかっているみたいだ
まだCORSが課題であることに変わりなし
ここで音声系に関しては、いったん保留としておこう
Comments