ImPolymath commited on
Commit
be0e7b0
·
verified ·
1 Parent(s): 3f4fb6f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -2
app.py CHANGED
@@ -3,6 +3,7 @@ from openai import OpenAI
3
  from os import getenv
4
  from audiorecorder import audiorecorder
5
  import tempfile
 
6
 
7
  # fonction pour lire et retourner le contenu de fichiers textes
8
  def lire_fichier(nom_fichier):
@@ -33,7 +34,24 @@ def transcribe_audio(audio_file):
33
 
34
  return transcript.text
35
 
36
- def process_message(message):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  st.session_state.messages.append({"role": "user", "content": message})
38
  with st.chat_message("user"):
39
  st.markdown(message)
@@ -53,6 +71,10 @@ def process_message(message):
53
 
54
  st.session_state.messages.append({"role": "assistant", "content": full_response})
55
 
 
 
 
 
56
  def main():
57
  st.title("Application de Chat avec GPT-4")
58
 
@@ -81,7 +103,7 @@ def main():
81
  st.audio(audio.export().read())
82
  transcription = transcribe_audio(audio)
83
  st.write(f"Transcription : {transcription}")
84
- process_message(transcription)
85
 
86
  st.sidebar.markdown("## À propos")
87
  st.sidebar.info("Cette application utilise Streamlit et OpenAI GPT-4 pour créer un chat interactif avec un modèle de langage avancé.")
 
3
  from os import getenv
4
  from audiorecorder import audiorecorder
5
  import tempfile
6
+ import base64
7
 
8
  # fonction pour lire et retourner le contenu de fichiers textes
9
  def lire_fichier(nom_fichier):
 
34
 
35
  return transcript.text
36
 
37
+ def text_to_speech(text):
38
+ response = client.audio.speech.create(
39
+ model="tts-1",
40
+ voice="alloy",
41
+ input=text
42
+ )
43
+
44
+ # Sauvegarder l'audio dans un fichier temporaire
45
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio:
46
+ response.stream_to_file(temp_audio.name)
47
+
48
+ # Lire le contenu du fichier audio
49
+ with open(temp_audio.name, "rb") as audio_file:
50
+ audio_bytes = audio_file.read()
51
+
52
+ return audio_bytes
53
+
54
+ def process_message(message, is_audio_input=False):
55
  st.session_state.messages.append({"role": "user", "content": message})
56
  with st.chat_message("user"):
57
  st.markdown(message)
 
71
 
72
  st.session_state.messages.append({"role": "assistant", "content": full_response})
73
 
74
+ if is_audio_input:
75
+ tts_audio = text_to_speech(full_response)
76
+ st.audio(tts_audio, format="audio/mp3")
77
+
78
  def main():
79
  st.title("Application de Chat avec GPT-4")
80
 
 
103
  st.audio(audio.export().read())
104
  transcription = transcribe_audio(audio)
105
  st.write(f"Transcription : {transcription}")
106
+ process_message(transcription, is_audio_input=True)
107
 
108
  st.sidebar.markdown("## À propos")
109
  st.sidebar.info("Cette application utilise Streamlit et OpenAI GPT-4 pour créer un chat interactif avec un modèle de langage avancé.")