W ramach dzisiejszej instrukcji będziemy testować kilka bibliotek służących do automatycznego rozpoznawania mowy. W ramach zajęć będziemy testować dwa z kilku możliwych bibliotek, które nie wymagają rejestracji w żadnych serwisach. Można przetestować również pozostałe na (niewielkie dodatkowe punkty).
Będziemy testować:
recognize_google()
: Google Web Speech APIrecognize_sphinx()
: CMU Sphinx
Jak ktoś chce może przetestować:
recognize_bing()
: Microsoft Bing Speechrecognize_houndify()
: Houndify by SoundHoundrecognize_ibm()
: IBM Speech to Textrecognize_wit()
: Wit.ai
pip install SpeechRecognition
pip install pipwin
pipwin install pocketsphinx
W jaki sposób działa nasze API
Na początek musimy zaimportować naszą bibliotekę i stworzyć instancję naszej funkcji rozpoznającej.
import speech_recognition as sr
= sr.Recognizer() r
Następnie musimy przygotować dane do odpowiedniego formatu. Domyślnie pracujemy tu na danych z plików, ale można również pobierać dane z Mikrofonu.
= sr.AudioFile('test.wav')
test with test as source:
= r.record(source) audio
Teraz możemy dokonać transkrypcji mowy na text:
= r.recognize_google(audio)
google = r.recognize_sphinx(audio)
sphinx print(google)
print(sphinx)
Dla niektórych z API możemy również rozpoznawać inne języki niż angielski:
='fr-FR') r.recognize_google(audio, language
Zadania
- Przygotować nagrane dłuższe próbki tekstu (np. akapit z książki) najlepiej po angielsku i po polsku. Wymienić się z innymi członkami grupy (współdzielony folder na MsTeams).(0.2 pkt)
- Przetestować co najmniej dwa zestawy API pod kontem skuteczności rozpoznawania tekstu. (0.4 pkt + ewentualne dodatkowe pkt dla dodatkowych API)
- Zanieczyścić szumem (w kilku stopniach intensywności) kilka wybranych próbek i sprawdzić skuteczność działania na nich algorytmów. (0.4 pkt)
- Zamieścić wyniki i obserwacje w sprawozdaniu.
Uwaga
Do zamieszczanych próbek dołączajcie plik .txt
z dokładnym tekstem w celu porównania.
Do oddania
- kod źródłowy (jeden plik
.py
) - sprawozdanie z obserwacjami i wynikami (format
PDF
)