Alesmikes commited on
Commit
addeef6
1 Parent(s): 50b6c02

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -34
app.py CHANGED
@@ -1,34 +1,37 @@
1
- import gradio as gr
2
- from transformers import Wav2Vec2ForCTC, Wav2Vec2Tokenizer
3
-
4
- # Nastavení modelu pro transkripci
5
- model_name = "facebook/wav2vec2-base-960h"
6
-
7
- def transcribe(audio_file):
8
- """
9
- Transkribuje audio soubor pomocí Wav2Vec2 modelu.
10
- """
11
- # Načtení modelu a tokenizeru
12
- model = Wav2Vec2ForCTC.from_pretrained(model_name)
13
- tokenizer = Wav2Vec2Tokenizer.from_pretrained(model_name)
14
-
15
- # Převedení audio souboru na tokeny
16
- input_values = tokenizer(audio_file, return_tensors="pt").input_values
17
-
18
- # Transkripce audia
19
- with gr.no_logging():
20
- with gr.no_progress():
21
- transcript = model(input_values).logits.argmax(dim=-1)
22
-
23
- # Převedení výsledku na text
24
- transcription = tokenizer.batch_decode(transcript)
25
-
26
- return transcription[0]
27
-
28
- iface = gr.Interface(
29
- fn=transcribe,
30
- inputs=gr.inputs.Audio(source="microphone", type="file"),
31
- outputs="text"
32
- )
33
-
34
- iface.launch()
 
 
 
 
1
+ import pyaudio
2
+ import wave
3
+
4
+ # Nastavení parametrů nahrávání
5
+ FORMAT = pyaudio.paInt16 # Formát zvuku
6
+ CHANNELS = 1 # Počet kanálů (mono)
7
+ RATE = 44100 # Vzorkovací frekvence (Hz)
8
+ CHUNK = 1024 # Velikost bloku dat
9
+ RECORD_SECONDS = 5 # Délka nahrávky (v sekundách)
10
+ WAVE_OUTPUT_FILENAME = "sample1.wav" # Název výstupního zvukového souboru
11
+
12
+ audio = pyaudio.PyAudio()
13
+
14
+ # Nahrávání zvuku z mikrofonu
15
+ stream = audio.open(format=FORMAT, channels=CHANNELS,
16
+ rate=RATE, input=True,
17
+ frames_per_buffer=CHUNK)
18
+ print("Nahrávám...")
19
+
20
+ frames = []
21
+
22
+ for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
23
+ data = stream.read(CHUNK)
24
+ frames.append(data)
25
+
26
+ print("Nahrávání dokončeno")
27
+
28
+ # Uložení nahrávky do WAV souboru
29
+ with wave.open(WAVE_OUTPUT_FILENAME, 'wb') as wf:
30
+ wf.setnchannels(CHANNELS)
31
+ wf.setsampwidth(audio.get_sample_size(FORMAT))
32
+ wf.setframerate(RATE)
33
+ wf.writeframes(b''.join(frames))
34
+
35
+ stream.stop_stream()
36
+ stream.close()
37
+ audio.terminate()