import streamlit as st import numpy as np import soundfile as sf import io from AIvtuber import chat_session, tts_to_wav st.title("AI VTuber チャット(SBV2+Gemini)") # チャット履歴の初期化 if "messages" not in st.session_state: st.session_state.messages = [] # チャット入力 user_input = st.text_input("メッセージを入力してください:") if user_input: # GeminiでAI応答 resp = chat_session.send_message(user_input) st.session_state.messages.append({"role": "user", "content": user_input}) st.session_state.messages.append({"role": "bot", "content": resp.text}) # 音声合成 sr, wav = tts_to_wav(resp.text) buffer = io.BytesIO() sf.write(buffer, wav, sr, format='WAV') buffer.seek(0) st.audio(buffer, format="audio/wav") # チャット履歴の表示 for message in st.session_state.messages: with st.chat_message(message["role"]): st.write(message["content"])