tomekstor9 commited on
Commit
2ff7a4a
·
verified ·
1 Parent(s): 7854666

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -10
app.py CHANGED
@@ -1,6 +1,7 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
  from pydub import AudioSegment
 
4
 
5
  # Załaduj mniejszy model Whisper do transkrypcji
6
  transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-small")
@@ -8,23 +9,39 @@ transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-sma
8
  # Załaduj model do tłumaczenia na angielski
9
  translator = pipeline("translation", model="Helsinki-NLP/opus-mt-pl-en")
10
 
11
-
12
- # Funkcja konwersji audio do 16 kHz
13
  def convert_audio(audio):
14
- sound = AudioSegment.from_file(audio)
15
- sound = sound.set_frame_rate(16000).set_channels(1)
16
- temp_file = "converted.wav"
17
- sound.export(temp_file, format="wav")
18
- return temp_file
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
  # Funkcja transkrypcji i tłumaczenia
21
  def transcribe_and_translate(audio):
22
  try:
23
- # Transkrypcja pliku audio
24
  converted_audio = convert_audio(audio)
 
 
 
 
25
  result = transcriber(converted_audio)
26
  transcription = result['text']
27
-
28
  # Tłumaczenie na angielski
29
  translation = translator(transcription)[0]['translation_text']
30
 
@@ -40,7 +57,8 @@ iface = gr.Interface(
40
  gr.Textbox(label="Transkrypcja tekstowa"), # Pierwsze okienko - tekst oryginalny
41
  gr.Textbox(label="Tłumaczenie na angielski") # Drugie okienko - tekst przetłumaczony
42
  ],
43
- title="Whisper Small - Transkrypcja i Tłumaczenie"
 
44
  )
45
 
46
  iface.launch()
 
1
  import gradio as gr
2
  from transformers import pipeline
3
  from pydub import AudioSegment
4
+ import os
5
 
6
  # Załaduj mniejszy model Whisper do transkrypcji
7
  transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-small")
 
9
  # Załaduj model do tłumaczenia na angielski
10
  translator = pipeline("translation", model="Helsinki-NLP/opus-mt-pl-en")
11
 
12
+ # Funkcja konwersji audio do 16 kHz, obsługuje MOV, MP4 i inne formaty
 
13
  def convert_audio(audio):
14
+ try:
15
+ # Sprawdź format pliku na podstawie rozszerzenia
16
+ extension = os.path.splitext(audio)[1].lower()
17
+
18
+ # Wczytaj plik w zależności od formatu
19
+ if extension in [".mov", ".mp4", ".m4a"]:
20
+ sound = AudioSegment.from_file(audio, format="mov" if extension == ".mov" else "mp4")
21
+ else:
22
+ sound = AudioSegment.from_file(audio)
23
+
24
+ # Konwersja do formatu WAV (16 kHz, mono)
25
+ sound = sound.set_frame_rate(16000).set_channels(1)
26
+ temp_file = "converted.wav"
27
+ sound.export(temp_file, format="wav")
28
+ return temp_file
29
+ except Exception as e:
30
+ print(f"Błąd konwersji pliku: {e}")
31
+ return None
32
 
33
  # Funkcja transkrypcji i tłumaczenia
34
  def transcribe_and_translate(audio):
35
  try:
36
+ # Konwersja audio do odpowiedniego formatu
37
  converted_audio = convert_audio(audio)
38
+ if not converted_audio:
39
+ return "Nie udało się przetworzyć pliku audio.", ""
40
+
41
+ # Transkrypcja pliku audio
42
  result = transcriber(converted_audio)
43
  transcription = result['text']
44
+
45
  # Tłumaczenie na angielski
46
  translation = translator(transcription)[0]['translation_text']
47
 
 
57
  gr.Textbox(label="Transkrypcja tekstowa"), # Pierwsze okienko - tekst oryginalny
58
  gr.Textbox(label="Tłumaczenie na angielski") # Drugie okienko - tekst przetłumaczony
59
  ],
60
+ title="Whisper Small - Transkrypcja i Tłumaczenie",
61
+ description="Aplikacja obsługująca pliki MOV, MP4 i inne formaty audio/wideo."
62
  )
63
 
64
  iface.launch()