ayaka68 commited on
Commit
c75c2da
·
verified ·
1 Parent(s): 5144e07

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -11
app.py CHANGED
@@ -493,8 +493,8 @@ def score_places(emo_label, top_k=4, diversity=True):
493
  def plot_emotion_map(emotion_label, scores, method="AI"):
494
  fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5), dpi=150)
495
  emotion_jp = {
496
- 'happiness': '😊 喜び', 'anger': '😠 怒り', 'sadness': '😢 悲しみ', 'neutral': '😐 中立',
497
- 'joy': '😊 喜び', 'calm': '😌 落ち着き', 'surprise': '😲 驚き', 'release': '💨 発散'
498
  }
499
  color_map = {
500
  'happiness': '#FF6B6B','anger': '#FFA94D','sadness': '#868E96','neutral': '#51CF66',
@@ -602,10 +602,10 @@ def main():
602
  if key not in st.session_state: st.session_state[key] = default
603
 
604
  st.subheader("1) 録音またはアップロード")
605
- with st.warning("⚠️ アップロードで403が出る場合は、録音機能をご利用ください。"):
606
- st.markdown("**🎤 録音** → 直接話す or 端末で音声再生しながら録音")
607
 
608
- tab_rec, tab_upload = st.tabs(["🎤 録音する(推奨)", "📁 ファイルを使う"])
609
 
610
  with tab_rec:
611
  audio = audiorecorder("録音開始 ▶", "録音停止 ■", key=f"rec_{st.session_state['rec_key']}")
@@ -627,12 +627,12 @@ def main():
627
  try:
628
  bytes_data = uploaded_file.getvalue()
629
  st.session_state["wav_bytes"] = bytes_data
630
- st.success(f"読み込み成功: {uploaded_file.name}")
631
  st.caption(f"ファイルサイズ: {len(bytes_data) / 1024:.1f} KB")
632
  audio_player_bytes(bytes_data, mime="audio/wav")
633
  except Exception as e:
634
- st.error("ファイル読み込みエラー"); st.exception(e)
635
- st.info("💡 代わりに録音機能をお試しください。")
636
 
637
  st.subheader("2) 同意")
638
  consent = st.radio("研究利用の同意(匿名IDで特徴量と評価を保存します)",
@@ -661,14 +661,14 @@ def main():
661
  method = st.session_state["method"]
662
  recs = st.session_state["recs"]
663
  emotion_japanese = {
664
- 'happiness': '喜び', 'anger': '怒り', 'sadness': '悲しみ', 'neutral': '中立',
665
  'joy': '喜び', 'calm': '落ち着き', 'surprise': '驚き', 'release': '発散'
666
  }
667
  display_emotion = emotion_japanese.get(emotion_label, emotion_label)
668
  st.success(f"推定感情: **{display_emotion}**")
669
 
670
  explanations = {
671
- "happiness": "喜びや楽しさを感じています",
672
  "joy": "喜びや楽しさを感じています",
673
  "calm": "落ち着いて穏やかな状態です",
674
  "surprise": "驚きや興奮を感じています",
@@ -709,7 +709,7 @@ def main():
709
  share_html = create_share_buttons(display_emotion, choice_name)
710
  st.markdown(share_html, unsafe_allow_html=True)
711
 
712
- if st.button("💾 ログ保存", key="save_log"):
713
  consent_research = (consent == "匿名で保存する")
714
  if not consent_research: st.info("体験のみモードです。研究ログは保存しません。")
715
  else: st.success("保存機能は開発中です。")
 
493
  def plot_emotion_map(emotion_label, scores, method="AI"):
494
  fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5), dpi=150)
495
  emotion_jp = {
496
+ 'happiness': '幸せ', 'anger': '怒り', 'sadness': '悲しみ', 'neutral': '中立',
497
+ 'joy': '喜び', 'calm': '落ち着き', 'surprise': '驚き', 'release': '発散'
498
  }
499
  color_map = {
500
  'happiness': '#FF6B6B','anger': '#FFA94D','sadness': '#868E96','neutral': '#51CF66',
 
602
  if key not in st.session_state: st.session_state[key] = default
603
 
604
  st.subheader("1) 録音またはアップロード")
605
+ with st.warning("アップロードで403が出る場合は、録音機能をご利用ください。"):
606
+ st.markdown("**録音** → 直接話す or 端末で音声再生しながら録音")
607
 
608
+ tab_rec, tab_upload = st.tabs(["録音する(推奨)", "ファイルを使う"])
609
 
610
  with tab_rec:
611
  audio = audiorecorder("録音開始 ▶", "録音停止 ■", key=f"rec_{st.session_state['rec_key']}")
 
627
  try:
628
  bytes_data = uploaded_file.getvalue()
629
  st.session_state["wav_bytes"] = bytes_data
630
+ st.success(f"読み込み成功: {uploaded_file.name}")
631
  st.caption(f"ファイルサイズ: {len(bytes_data) / 1024:.1f} KB")
632
  audio_player_bytes(bytes_data, mime="audio/wav")
633
  except Exception as e:
634
+ st.error("ファイル読み込みエラー"); st.exception(e)
635
+ st.info("代わりに録音機能をお試しください。")
636
 
637
  st.subheader("2) 同意")
638
  consent = st.radio("研究利用の同意(匿名IDで特徴量と評価を保存します)",
 
661
  method = st.session_state["method"]
662
  recs = st.session_state["recs"]
663
  emotion_japanese = {
664
+ 'happiness': '幸せ', 'anger': '怒り', 'sadness': '悲しみ', 'neutral': '中立',
665
  'joy': '喜び', 'calm': '落ち着き', 'surprise': '驚き', 'release': '発散'
666
  }
667
  display_emotion = emotion_japanese.get(emotion_label, emotion_label)
668
  st.success(f"推定感情: **{display_emotion}**")
669
 
670
  explanations = {
671
+ "happiness": "幸せを感じています",
672
  "joy": "喜びや楽しさを感じています",
673
  "calm": "落ち着いて穏やかな状態です",
674
  "surprise": "驚きや興奮を感じています",
 
709
  share_html = create_share_buttons(display_emotion, choice_name)
710
  st.markdown(share_html, unsafe_allow_html=True)
711
 
712
+ if st.button("ログ保存", key="save_log"):
713
  consent_research = (consent == "匿名で保存する")
714
  if not consent_research: st.info("体験のみモードです。研究ログは保存しません。")
715
  else: st.success("保存機能は開発中です。")