Spaces:
Paused
Paused
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"]) |