File size: 993 Bytes
a1678e3
 
559724d
 
5902431
ca78aa1
5902431
a1678e3
5902431
 
 
a1678e3
5902431
 
 
 
 
 
 
 
 
 
ca78aa1
 
 
5902431
559724d
5902431
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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"])