Spaces:
Paused
Paused
Commit
·
4ed65f9
1
Parent(s):
ee4ee0e
update files upload feature
Browse files- pages/main.py +23 -1
pages/main.py
CHANGED
|
@@ -65,7 +65,11 @@ def hash_file(file):
|
|
| 65 |
return hasher.hexdigest()
|
| 66 |
|
| 67 |
def callback_change_edited_text(key, value, modified_text):
|
| 68 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
#print(st.session_state.changed_uploaded_files[key])
|
| 70 |
|
| 71 |
def save_attachment(attachment):
|
|
@@ -408,6 +412,16 @@ def main_page():
|
|
| 408 |
"type": uploaded_file_type,
|
| 409 |
"bytes_data": file.read()
|
| 410 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 411 |
changed_uploaded_files = {}
|
| 412 |
for file_hash in st.session_state.changed_uploaded_files.keys():
|
| 413 |
if file_hash in new_uploaded_files_hashes:
|
|
@@ -436,6 +450,14 @@ def main_page():
|
|
| 436 |
format=f"audio/{value['type']}",
|
| 437 |
autoplay=False
|
| 438 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 439 |
|
| 440 |
|
| 441 |
# Interface utilisateur pour l'enregistrement audio
|
|
|
|
| 65 |
return hasher.hexdigest()
|
| 66 |
|
| 67 |
def callback_change_edited_text(key, value, modified_text):
|
| 68 |
+
if value["type"] in ["txt"]:
|
| 69 |
+
st.session_state.changed_uploaded_files[key]["bytes_data"] = st.session_state[modified_text].encode()
|
| 70 |
+
elif value["type"] in ["wav", "mp3"]:
|
| 71 |
+
st.session_state.changed_uploaded_files[key]["audio_transcription"] = st.session_state[modified_text]
|
| 72 |
+
|
| 73 |
#print(st.session_state.changed_uploaded_files[key])
|
| 74 |
|
| 75 |
def save_attachment(attachment):
|
|
|
|
| 412 |
"type": uploaded_file_type,
|
| 413 |
"bytes_data": file.read()
|
| 414 |
}
|
| 415 |
+
if uploaded_file_type in ["wav", "mp3"]:
|
| 416 |
+
audio = AudioSegment.from_wav(io.BytesIO(st.session_state.changed_uploaded_files[uploaded_file_hash]["bytes_data"]))
|
| 417 |
+
with tempfile.NamedTemporaryFile(suffix=f".{uploaded_file_type}", delete=False) as tmp_file:
|
| 418 |
+
audio.export(tmp_file, format=uploaded_file_type)
|
| 419 |
+
tmp_file.close()
|
| 420 |
+
st.session_state.changed_uploaded_files[uploaded_file_hash]["audio_transcription"] = transcribe_audio(
|
| 421 |
+
filepath=tmp_file.name
|
| 422 |
+
)
|
| 423 |
+
audio = AudioSegment.empty()
|
| 424 |
+
|
| 425 |
changed_uploaded_files = {}
|
| 426 |
for file_hash in st.session_state.changed_uploaded_files.keys():
|
| 427 |
if file_hash in new_uploaded_files_hashes:
|
|
|
|
| 450 |
format=f"audio/{value['type']}",
|
| 451 |
autoplay=False
|
| 452 |
)
|
| 453 |
+
if "audio_transcription" in value.keys():
|
| 454 |
+
with st.expander("View audio transcription"):
|
| 455 |
+
st.text_area( f"Edit text - {value['name']}",
|
| 456 |
+
value=file_content,
|
| 457 |
+
key=value["name"],
|
| 458 |
+
on_change=callback_change_edited_text,
|
| 459 |
+
args=(key, value, value["name"])
|
| 460 |
+
)
|
| 461 |
|
| 462 |
|
| 463 |
# Interface utilisateur pour l'enregistrement audio
|