Spaces:
Paused
Paused
rick
commited on
bug fixed now... not done...
Browse files- pages/main.py +13 -106
pages/main.py
CHANGED
|
@@ -25,7 +25,7 @@ import warnings
|
|
| 25 |
# Ignore DeprecationWarning
|
| 26 |
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
| 27 |
|
| 28 |
-
|
| 29 |
|
| 30 |
# Au début du fichier, après les imports
|
| 31 |
st.set_page_config(
|
|
@@ -598,23 +598,23 @@ def main_page():
|
|
| 598 |
st.session_state.user_input = st.chat_input(
|
| 599 |
get_translation("entrez_message")
|
| 600 |
)
|
| 601 |
-
st.session_state.audio = audiorecorder(
|
| 602 |
-
|
| 603 |
-
|
| 604 |
-
|
| 605 |
-
|
| 606 |
-
|
| 607 |
-
)
|
| 608 |
if type(st.session_state.user_input) != type(None):
|
| 609 |
print("len of user_input: {0}".format(
|
| 610 |
len(st.session_state.user_input)
|
| 611 |
)
|
| 612 |
)
|
| 613 |
-
if type(st.session_state.audio) != type(None):
|
| 614 |
-
|
| 615 |
-
|
| 616 |
-
|
| 617 |
-
|
| 618 |
|
| 619 |
if st.session_state.user_input:
|
| 620 |
|
|
@@ -728,100 +728,7 @@ def main_page():
|
|
| 728 |
clear_inputs_garbages()
|
| 729 |
# Interface utilisateur pour l'enregistrement audio
|
| 730 |
# st.write(f"🗣️ {get_translation('enregistrez_message')}")
|
| 731 |
-
elif st.session_state.audio:
|
| 732 |
-
# Traitement de l'entrée audio de l'utilisateur
|
| 733 |
-
if len(st.session_state.audio) > 0:
|
| 734 |
-
with tempfile.TemporaryDirectory() as temp_dir:
|
| 735 |
-
temp_audio_path = os.path.join(temp_dir, "temp_audio.wav")
|
| 736 |
-
st.session_state.audio.export(temp_audio_path, format="wav")
|
| 737 |
-
st.write(f"Frame rate: {st.session_state.audio.frame_rate}, Frame width: {st.session_state.audio.frame_width}, Duration: {st.session_state.audio.duration_seconds} seconds")
|
| 738 |
-
|
| 739 |
-
# Transcrire l'audio en texte
|
| 740 |
-
st.session_state.transcription = transcribe_audio(temp_audio_path, language=st.session_state.language_detected)
|
| 741 |
-
|
| 742 |
-
#os.remove(temp_audio_path)
|
| 743 |
-
# Detecter la langue du texte transcrit (si la langue source n'est pas détectée)
|
| 744 |
-
if st.session_state.language_detected is None:
|
| 745 |
-
st.session_state.language_detected = detect_language(
|
| 746 |
-
input_text=st.session_state.transcription, temperature=0.01
|
| 747 |
-
)
|
| 748 |
-
st.markdown(
|
| 749 |
-
f"- {get_translation('langue_detectee')}".format(
|
| 750 |
-
f"{convert_iso6391_to_language_name(st.session_state.language_detected)}"
|
| 751 |
-
)
|
| 752 |
-
)
|
| 753 |
-
|
| 754 |
-
st.markdown(
|
| 755 |
-
f"🎤 {get_translation('transcription_audio')}".format(
|
| 756 |
-
f"{st.session_state.transcription}"
|
| 757 |
-
)
|
| 758 |
-
)
|
| 759 |
-
|
| 760 |
-
|
| 761 |
-
st.session_state.audio_list = []
|
| 762 |
-
for cursor_selected_lang in st.session_state.selected_languages:
|
| 763 |
-
st.session_state.target_language = cursor_selected_lang["iso-639-1"]
|
| 764 |
-
st.session_state.full_response = ""
|
| 765 |
-
|
| 766 |
-
# Initialisation du mode de traitement pour la langue cible actuelle
|
| 767 |
-
st.session_state.system_prompt, st.session_state.operation_prompt = init_process_mode(from_lang=
|
| 768 |
-
(
|
| 769 |
-
st.session_state.language_detected if "language_detected" in st.session_state.language_detected else convert_language_name_to_iso6391(
|
| 770 |
-
st.session_state.interface_language
|
| 771 |
-
)
|
| 772 |
-
),
|
| 773 |
-
to_lang=st.session_state.target_language
|
| 774 |
-
)
|
| 775 |
-
|
| 776 |
-
with st.chat_message("assistant", avatar="👻"):
|
| 777 |
-
message_placeholder = st.empty()
|
| 778 |
-
st.session_state.response_generator = process_message(
|
| 779 |
-
st.session_state.transcription,
|
| 780 |
-
st.session_state.operation_prompt,
|
| 781 |
-
st.session_state.enable_tts_for_input_from_audio_record,
|
| 782 |
-
st.session_state.system_prompt
|
| 783 |
-
)
|
| 784 |
-
|
| 785 |
-
for response_chunk in st.session_state.response_generator:
|
| 786 |
-
message_placeholder.markdown(response_chunk)
|
| 787 |
-
st.session_state.end_response = st.session_state.response_generator.close()
|
| 788 |
-
if st.session_state.full_response != "":
|
| 789 |
-
message_placeholder.markdown(st.session_state.full_response)
|
| 790 |
-
|
| 791 |
-
if st.session_state.enable_tts_for_input_from_audio_record:
|
| 792 |
-
st.session_state.tts_audio, st.session_state.tts_duration = process_tts_message(st.session_state.full_response)
|
| 793 |
-
|
| 794 |
-
if st.session_state.tts_audio:
|
| 795 |
-
st.session_state.audio_list.append(
|
| 796 |
-
( st.session_state.tts_audio,
|
| 797 |
-
st.session_state.tts_duration )
|
| 798 |
-
)
|
| 799 |
-
else:
|
| 800 |
-
pass
|
| 801 |
|
| 802 |
-
if st.session_state.audio_list:
|
| 803 |
-
st.session_state.final_audio = concatenate_audio_files(st.session_state.audio_list)
|
| 804 |
-
|
| 805 |
-
with st.container(border=True):
|
| 806 |
-
|
| 807 |
-
# Générer un nom de fichier unique
|
| 808 |
-
st.session_state.timestamp = time.strftime("%Y%m%d-%H%M%S")
|
| 809 |
-
st.session_state.langues = "_".join([lang["iso-639-1"] for lang in st.session_state.selected_languages])
|
| 810 |
-
st.session_state.nom_fichier = f"reponse_audio_{st.session_state.langues}_{st.session_state.timestamp}.mp3"
|
| 811 |
-
|
| 812 |
-
st.audio(st.session_state.final_audio, format="audio/mp3", autoplay=st.session_state.autoplay_tts)
|
| 813 |
-
|
| 814 |
-
st.download_button(
|
| 815 |
-
label=f"📥 {get_translation('telecharger_audio')}",
|
| 816 |
-
data=st.session_state.final_audio,
|
| 817 |
-
file_name=st.session_state.nom_fichier,
|
| 818 |
-
mime="audio/mp3",
|
| 819 |
-
use_container_width=True,
|
| 820 |
-
type="primary",
|
| 821 |
-
key=f"download_button_{st.session_state.langues}_{st.session_state.timestamp}",
|
| 822 |
-
)
|
| 823 |
-
#
|
| 824 |
-
clear_inputs_garbages()
|
| 825 |
|
| 826 |
def clear_inputs_garbages(sessions_state_list: Optional[list] =
|
| 827 |
[ 'transcription', 'operation_prompt', 'system_prompt',
|
|
|
|
| 25 |
# Ignore DeprecationWarning
|
| 26 |
warnings.filterwarnings("ignore", category=DeprecationWarning)
|
| 27 |
|
| 28 |
+
from var_app import __version__
|
| 29 |
|
| 30 |
# Au début du fichier, après les imports
|
| 31 |
st.set_page_config(
|
|
|
|
| 598 |
st.session_state.user_input = st.chat_input(
|
| 599 |
get_translation("entrez_message")
|
| 600 |
)
|
| 601 |
+
#st.session_state.audio = audiorecorder(
|
| 602 |
+
# start_prompt=get_translation("cliquez_enregistrer"),
|
| 603 |
+
# stop_prompt=get_translation("cliquez_arreter"),
|
| 604 |
+
# pause_prompt=get_translation("cliquez_pause"),
|
| 605 |
+
# show_visualizer=True,
|
| 606 |
+
# key="vocal_chat_input"
|
| 607 |
+
#)
|
| 608 |
if type(st.session_state.user_input) != type(None):
|
| 609 |
print("len of user_input: {0}".format(
|
| 610 |
len(st.session_state.user_input)
|
| 611 |
)
|
| 612 |
)
|
| 613 |
+
#if type(st.session_state.audio) != type(None):
|
| 614 |
+
# print("len of audio: {0}".format(
|
| 615 |
+
# len(st.session_state.audio)
|
| 616 |
+
# )
|
| 617 |
+
# )
|
| 618 |
|
| 619 |
if st.session_state.user_input:
|
| 620 |
|
|
|
|
| 728 |
clear_inputs_garbages()
|
| 729 |
# Interface utilisateur pour l'enregistrement audio
|
| 730 |
# st.write(f"🗣️ {get_translation('enregistrez_message')}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 732 |
|
| 733 |
def clear_inputs_garbages(sessions_state_list: Optional[list] =
|
| 734 |
[ 'transcription', 'operation_prompt', 'system_prompt',
|