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 API
  • recognize_sphinx(): CMU Sphinx

Jak ktoś chce może przetestować:

  • recognize_bing(): Microsoft Bing Speech
  • recognize_houndify(): Houndify by SoundHound
  • recognize_ibm(): IBM Speech to Text
  • recognize_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

r = sr.Recognizer()

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.

test = sr.AudioFile('test.wav')
with test as source:
    audio = r.record(source)

Teraz możemy dokonać transkrypcji mowy na text:

google = r.recognize_google(audio)
sphinx = r.recognize_sphinx(audio)
print(google)
print(sphinx)

Dla niektórych z API możemy również rozpoznawać inne języki niż angielski:

r.recognize_google(audio, language='fr-FR')

Zadania

  1. 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)
  2. Przetestować co najmniej dwa zestawy API pod kontem skuteczności rozpoznawania tekstu. (0.4 pkt + ewentualne dodatkowe pkt dla dodatkowych API)
  3. Zanieczyścić szumem (w kilku stopniach intensywności) kilka wybranych próbek i sprawdzić skuteczność działania na nich algorytmów. (0.4 pkt)
  4. 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)