EltenLink

Whisper czyli nowe fajne do rozpoznawania mowy

Back to Nowości, odkrycia, newsy

#241 matius

Sprawdzam czy jestem we właściwym katalogu.
dir
dir audio.wav
21 File(s) 6 118 660 bytes
25 Dir(s) 226 042 880 000 bytes free

(base) C:\Users\mateu>dir audio.wav
Volume in drive C is OS
Volume Serial Number is B8C3-4ED1

Directory of C:\Users\mateu

30.11.2022 20:05 0 audio.wav
1 File(s) 0 bytes
0 Dir(s) 226 042 494 976 bytes free

(base) C:\Users\mateu>

(base) C:\Users\mateu>whisper audio.wav
Traceback (most recent call last):
File "C:\Users\mateu\anaconda3\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\mateu\anaconda3\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\mateu\anaconda3\Scripts\whisper.exe\__main__.py", line 7, in
File "C:\Users\mateu\anaconda3\lib\site-packages\whisper\transcribe.py", line 307, in cli
result = transcribe(model, audio_path, temperature=temperature, **args)
File "C:\Users\mateu\anaconda3\lib\site-packages\whisper\transcribe.py", line 84, in transcribe
mel = log_mel_spectrogram(audio)
File "C:\Users\mateu\anaconda3\lib\site-packages\whisper\audio.py", line 111, in log_mel_spectrogram
audio = load_audio(audio)
File "C:\Users\mateu\anaconda3\lib\site-packages\whisper\audio.py", line 42, in load_audio
ffmpeg.input(file, threads=0)
File "C:\Users\mateu\anaconda3\lib\site-packages\ffmpeg\_run.py", line 313, in run
process = run_async(
File "C:\Users\mateu\anaconda3\lib\site-packages\ffmpeg\_run.py", line 284, in run_async
return subprocess.Popen(
File "C:\Users\mateu\anaconda3\lib\subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\mateu\anaconda3\lib\subprocess.py", line 1420, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Nie można odnaleźć określonego pliku


Sygnatura – Uczcij poległych i cierpiących ocalałych ciężką pracą, ponieważ porażka zawsze może się zdarzyć, jednak nigdy nie staraj się udawać, że jesteś doskonały, ponieważ prowadzi to do gorszego końca niż porażka, wiedzie na ścieżkę hańby i nikczemności.
2022-12-02 20:25

#242 midzi

ale to trzeba wpisać inaczej, np.
whisper audio.wav --model large --language Polish



2022-12-03 02:01

#243 zywek

Ale to nie ma znaczenia, nie masz plikuffmpeg.exe tam, gdzie jest audio.wav i nic się nie zrobi.



Edited 2022-12-03 13:31

#244 matius

Gdzie więc szukać tego ffmpeg.exe?


Sygnatura – Uczcij poległych i cierpiących ocalałych ciężką pracą, ponieważ porażka zawsze może się zdarzyć, jednak nigdy nie staraj się udawać, że jesteś doskonały, ponieważ prowadzi to do gorszego końca niż porażka, wiedzie na ścieżkę hańby i nikczemności.
2022-12-03 14:32

#245 DJGraco



Edited 2022-12-03 15:48

#246 midzi

@zywek, ale jeśli ffmpeg jest prawidłowo zainstalowany to nie musi być w tym samym katalogu, co plik, powinno się dać go globalnie wywołać.



2022-12-03 18:20

#247 zywek

MOże, ja nie widziałem nigdzie instalatora ffmpeg, ngdy nie widziałem. Zawsze go wrzucałem do jakiegoś folderu, z którym akurat pracowałem.



2022-12-03 18:21

#248 midzi

ja na Windowsie zainstalowałem sobie paczkę z chocolatey no i działa mi globalnie



2022-12-03 19:00

#249 zywek

ah, chocolatey, no to tak można, robi to jeszcze większy śmietnk niż w windowsie sam się robi, ale to już nieważne. Jak działa, to najważniejsze.



2022-12-03 19:20

#250 papierek

Ja też nie muszę w tym samym folderze, mogę utworzyć dowolny gdziekolwiek.


po co mi sygnatura?
2022-12-03 19:55

#251 midzi

Ukazała się druga wersja modelu large, właśnie zasysam:
https://github.com/openai/whisper/commit/4179ed2475cc84cba66868b516232ef1b74dacdf



2022-12-08 13:44

#252 pajper

Przepraszam za opóźnienie, podrzucam skompilowaną wersję.


#StandWithUkraine

Shoot for the Moon. Even if you miss, you'll land among the stars.
2022-12-09 23:11

#253 Paulinux

Dzięki. Teraz masa pytań.
1. Jak zrobic, żeby on nie uwzględniał domyślnych opcji, na przykład żeby nie tłumaczył jakichś źle przetranskrybowanych słów siłą na angielski?
2. Jak deklarować mu modele do użycia, tj. gdzie je umieścić i jak je nazywać żeby wiadomo było o co kaman?
3. Jakie powinno być przeciętne usage ze skonfigurowanymi opcjami, żeby było fajnie, tj. raczej większa dokładność niż mniejsza, ale co by się komp nie spalił?


Happy hacking
2022-12-10 02:56

#254 violinist Archived

no i co? jak używać tej wersji skompilowanej niby?



2022-12-10 02:59

#255 Paulinux

Ehh. A już myślałam że mi ktoś odpowiedział na pytania 🙄


Happy hacking
2022-12-10 11:27

#256 pajper

1. Jak zrobic, żeby on nie uwzględniał domyślnych opcji, na przykład żeby nie tłumaczył jakichś źle przetranskrybowanych słów siłą na angielski?
To jest niestety słabość modelu, to samo masz w zwykłym whisperze.

2. Jak deklarować mu modele do użycia, tj. gdzie je umieścić i jak je nazywać żeby wiadomo było o co kaman?
Wszystkie modele są na stronie
https://ggml.ggerganov.com/
te pliki nazywają się we wzorcu ggml-model-whisper-blablabla.bin.
Wystarczy pobrać je, gdziekolwiek zapisać i przekazać jako parametr -m, np.
whisper.cpp -m ggml-model-base.bin plik.wav

Ważna uwaga, whisper.cpp potrafi pracować tylko z plikami wave mono s16le 16kHz, więc najpierw trzeba je do takiego formatu skonwertować. Ze względu na rozmiar, obsługa innych kodeków została usunięta.
Whisper zwykły też pracuje z takim audio, ale wewnętrznie po prostu wszystko na nie konwertuje.

3. Jakie powinno być przeciętne usage ze skonfigurowanymi opcjami, żeby było fajnie, tj. raczej większa dokładność niż mniejsza, ale co by się komp nie spalił?
Domyślne ustawienia są dobre, trzeba tylko dobrać ilość wątków, domyślnie 4.
Ja proponuję ustawić o 1 lub 2 mniej, niż ilość rdzeni logicznych, tak co by działało, ale nie zwiesiło całego komputera.


#StandWithUkraine

Shoot for the Moon. Even if you miss, you'll land among the stars.
Edited 2022-12-10 12:17

#257 Paulinux

Wielkie dzięki. Idę testować.


Happy hacking
2022-12-10 13:06

#258 Paulinux

Ej to czekaj, bo tu nie ma rozdzielenia na modele języków. To jak się deklaruje języki?


Happy hacking
2022-12-10 13:24

#259 Paulinux

Kuźwa, jestem w 17 minucie transkrybowania largem pliku 40 minutowego i transkrypcja właśnie osiągnęła 4 minutę. Szczerze spodziewałam się lepszych wyników na tym moim kompie.


Happy hacking
2022-12-10 14:35

#260 tomecki

A u mnie chyba nie działa albo coś źle robię. Wywołałem to to tak: whisper.cpp.exe -f a.wav --model medium.bin -t 18 --language en
bo mam plik angielski. Wcześniej skonwertowałem go do wave 16bit, 16khz, mono. Whisper się uruchomił i pokazał to:
whisper_model_load: loading model from 'medium.bin'
whisper_model_load: n_vocab = 51865
whisper_model_load: n_audio_ctx = 1500
whisper_model_load: n_audio_state = 1024
whisper_model_load: n_audio_head = 16
whisper_model_load: n_audio_layer = 24
whisper_model_load: n_text_ctx = 448
whisper_model_load: n_text_state = 1024
whisper_model_load: n_text_head = 16
whisper_model_load: n_text_layer = 24
whisper_model_load: n_mels = 80 ┌───────────────────────────┐
whisper_model_load: f16 = 1 │Enter command number: │
whisper_model_load: type = 4 └───────────────────────────┘
whisper_model_load: adding 1608 extra tokens
whisper_model_load: mem_required = 2608.00 MB
whisper_model_load: ggml ctx size = 1462.35 MB
whisper_model_load: memory size = 182.62 MB
whisper_model_load: model size = 1462.12 MB

system_info: n_threads = 18 / 20 | AVX = 1 | AVX2 = 1 | AVX512 = 0 | NEON = 0 | F16C = 0 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 |

main: processing 'a.wav' (3234586 samples, 202.2 sec), 18 threads, 1 processors, lang = en, task = transcribe, timestamps = 1 ...

Załadował sobie sporo do ramu, konkretnie ze 3gb, po czym zaczął ciąć NVDA jakby faktycznie procesor miał co robić, ale wiatraczki chodziły tylko przez chwilę, chociaż zużycie cpu pokazywało koło 40%. Potrzymałem go niecałą godzinę i odpuściłem bez rezultatów. Coś tu chyba nie bangla.



2022-12-10 15:03