Vaibhavs10 / insanely-fast-whisper

Apache License 2.0
6.94k stars 505 forks source link

Random and inconsistent transcribe #175

Closed Auth0rM0rgan closed 4 months ago

Auth0rM0rgan commented 5 months ago

Hi @Vaibhavs10, I'm using your implementation of the whisper to do the transcribing which it does the job very fast! However, I realized that by running the Insanely fast whisper on the same Audio file, I'm getting different transcribing and sometimes even random words or a lot of repetitions of the same word.

This is part of my code:

self.pipe = pipeline(
            "automatic-speech-recognition",
            model="openai/whisper-medium",
            torch_dtype=torch.float16 if self._device_check else torch.float32,
            device=self._device,
            model_kwargs={"attn_implementation": "flash_attention_2"} if
            is_flash_attn_2_available() and self._device_check and self.timestamp_type != 'word' else
            {"attn_implementation": "sdpa"} if self.timestamp_type == 'chunks' else {"attn_implementation": "eager"},
            generate_kwargs={"task": "transcribe",
                             "language": None,
                             # "temperature": 0.5,
                             # "repetition_penalty": 1.02,
                             # 'num_beams': 1,
                             # 'max_new_tokens': 128,
                             # 'do_sample': False,
                             # 'low_memory': False
                             },
        )

outputs = self.pipe(
            file_path,
            chunk_length_s=30,
            batch_size=1,
            return_timestamps=True if self.timestamp_type == 'chunks' else 'word',
        )

Here is the output for the first try:

Ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Simiesos, ką pristato šį epizodą, Gevargėsas, ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Ką gavadėme prieš keliautą minučių buvo daugiau nei įspūdinga. Ką gavadėme priešliotą minučių, buvo daugiau nei įspūdinga. Simiesos, kompris nato šį epizodą. Gevarijusas, geisas, ko ją tikrai užverė geismas. Sukrūs, kai Kamali ištiršau, sutidė Lėjagą. Pražangos, Tomas Dimšrai iš toly. Nedaiklus Tomo metimas. Kamali įmalo R Laurinos, Birutis ir Oskinas Valincas. Genetina į stiprije, pasūko čiurną, taip, kad jo šiandien turbūt taipogai, eik šitie nepamatysime. Čia Lekavičius su ranną dimšą. Torpas. 10 daškų skiria komandas. Taisa, šiaulėja, paudžiai, klystas šios atakos metu. Algeris turėjo pirmą į Italą žaidėję klubo istorijoje. Tai dabar pasižymė. Na, gali pasigirti ir pirmojų Italų geriausijų treneriočių. Mekavčius užmeta, kamolį biročiai daug sėkmigiau šį kartą. Netoli tikslą, bet vis dėl to netiksliai. Lukas Mekavčius jau bėga į greitą polimą. Menikas kila ir veda. Vau, reidžio Menikas. Skrotė Jogiris moka krautį iš virš viršausių ir krauti nepaisidamas varžo. Kyphos ne per nely grįžkus šiandien, pastarosose trėjose rūkinėse jis rinko padar gorygų 13. Naudaigumo balų minutiniškai džiaulau, Rynas Birutis. Birutis. Samokai neteko. Taip garsiai skampa čia šiauliai, šiauliai. Šioje arenoje. Čia breidymenekas, bent šiek tiek atsit. Net nepo truputį, o labai stipriai blėsta šiauliečių viltis. Pus antros minutės iki ketrų tokelniau, o baigos ir plus dvylika kauniečių. Čia puikiai Lekavičius su randą Heizas. Heizas iš pokrepšą verčia dar du toškus, plus keturi minutės iki ketrutą kelną o beigos ir plus dvylika kauniečių. Čia puikiai, Lekavičius su randa, Heizas, Heizas. Iš pakrepšą verčia dar rūtaškus, plus keturiolės.

here is the output for the second try with the same setting and audio file:

Ką jau pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kurių pasakyti, kia matime prieš keliotų minučių buvo daugiau nei įspūdinga. Simėsos, ką pristato šį epizodą, Gevargiusas, Geisas, ko ją tikrai užmerė Geismas, su Krūstų Kemulį, išteržau, sutidė Lėjagą. Pražangos, Tomas Dimšrai, iš toly. Nedaiklus Tomo metimas, Kemulį,inos, Birutis ir Rostinas, Valincas. Kanėtinai stipriai atrody pasuko Čurną, taip kad jo šiandien turbūt taipogai, eik šitie nepamakysime. Čia Lekavičius su ranną dimšą. Torpas. 10 taškų skiria komandas. Tiesa, šiaulėja Paudžiai, klystas šios atakos metu. Aligaris turėjo pirmąji į Italą žaidėję klubo istorijoje. Tai dabar pasižymė, gali pasigirti ir pirmuoju į Italų geriausiai treneriuočių. Nekavčius užmeta kamolį biruotčiai daug sėkmėjau šį kartą. Netoli tikslą, bet vis dėl to netiksliai. Lukas Nekavčius jau bėga į greitą polimą, menikas kilo ir bėda. Vau, reidima, menikas, kila ir bėda, vau, reidi, menikas. Strotė Jogiris moka krautį iš viršausių ir krautį nepaisidamas varžo. Kyfas ne per nelygrį iškus šiandien, pastarosose trėjose rūkylėse jis rinko padagoregų 13, naudaigumo balomį, dutiniškai džiaulau, rynas pirutis. Vyrūtis! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! Šiauliai! kauniečių. Čia puikiai, Lekavičius randa Heizas, Heizas iš pakrepšo verčio dar gutoškus plus keturiole.

Also, I have transcribed the audio with the official Whisper implementation and here is the transcribe. As you can see the transcribe is quite different from Insanely fast whisper and doesn't have the problem of repeating or inconsistency in output with multiple runs.

 Paskas, kurių jau pasakyti, ir jis pasakyti, kad jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti. Ir jis pasakyti, kad jis pasakyti. Prieš keliotą minučių buvo daugiau neįspūdinga. Simėsos, kumpristano šį epizodą. Gevariusas, Geisas. Kojam tikrai užmerė geismas. Sukrūstų kemaliai ištiržau, sukti dėlėjagę. Pražangos, Tomas Dimšai iš toly. Nedaiklus Tomo metimas. Kemalijimą Laurynos, Birutis ir Oskinas Valintzas. Genetinai stiprije atrody pasuko čurną, taip kad jo šiandien turbūt taipogai, neką šitie nepamatysime. Čia Lekavičius, Oran, Dimša. Torpas. 10 daškų skiria komandas. Tiesa šiaulėja, paudžiai, klista šios atakos metu. Halgiris turėjo pirmą į Italą žaidėję klubo istorijoje. Tai dabar pasižymė. Gali pasigirti ir pirmojų, į tolų geriausiai treneriočio. Lekavičius užmeta. Kamaliu Birutis daug sėkmidėjų šį kartą. Netoli tikslą, bet vis dėl to netiksliai. Lukas Lekavičius jau bėgai greitą, polimą Menikas. Kilo ir bėda. Vau, reidi Menikas. Skrotai Jogiris moka krauti iš viršausių ir krauti nepaisidamas varžo. Kyfas ne per nelykriškus šiandien. Pastaros atrejosi rūkynesiai, įsirinko padar guregų 13 daugumų balų. Minutiniškai čia lau Rilas Birutis. Semokai neteko. Taip, garsiai skamba šiau lėjšioje arenoje. Reidi Menikas, bet šiek tiek atsidė. Net ne patruputė, o labai stipriai blėsta šiaulėčių viltis. 1,5 min. iki 4 kelių o beigos ir plus 12 kąniečių. Čia puikiai Lekavičius su rando Heizas. Iš pokrepšo verčia dar gutoškus plus 14.

Can you help me with how can I get consistent results and not random? or what I'm doing wrong?

Thanks!!

ringge commented 5 months ago

I also bumped into similar issue, results show repeating texts

Rm1n90 commented 5 months ago

I'm facing the same issue. I have tried different settings but still, the output is not constant between multiple runs. I also tried some preprocessing

    def preprocessing_audio(audio_file):
        arr, org_sr = torchaudio.load(audio_file)
        new_arr = torchaudio.functional.resample(arr, orig_freq=org_sr, new_freq=16000)
        torchaudio.save(audio_file, new_arr, sample_rate=16000)

but still had no success. I can get somehow constant output between multiple runs by increasing the number of beams to 5 instead of 1. However, the computation time becomes like the official Whisper slow.

Auth0rM0rgan commented 4 months ago

I end up to use the hugging face which the transcribe is more reliable and have a support.

omegalens commented 4 months ago

also getting lots of repeated phrases. very strange