Skocz do zawartości

Lekton - czyli "Powrót z gwiazd" w praktyce


Pomocna odpowiedź

  • 7 miesiące później...

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

(edytowany)

Kod już na githubie - można obejrzeć jak poradziłęm sobie z wysokimi prędkościami: w pliku src/speech/nymbrola.cpp poszukać

#ifdef MILENA_FAST

Niestety - próby dalszego zwiększana prędkości mie wyszły... na razie cieszę się z tego co mam (prędkość ok. 2.2x)

Aha, README.md na githuba się właśnie pisze 🙂

 

Edytowano przez ethanak
  • Lubię! 1
  • 3 tygodnie później...

PCM5702A. Ten układ pobiera dane cyfrowe i dekoduje je do audio. Nie dekoduje mp3. Czy dekoder mp3 jest w esp32? Nie wiem czy dobrze zrozumiałem...

10 godzin temu, kroszkanorber napisał:

Ten układ pobiera dane cyfrowe i dekoduje je do audio.

Oczywiście - on dostaje audio po I2S i wywala na analog (słuchawki).

10 godzin temu, kroszkanorber napisał:

Czy dekoder mp3 jest w esp32

Dekoder jest czysto programowy (z biblioteki 8266Audio) i sprawdza się całkiem nieźle. Do tego pamiętaj, że między dekoderem a driverem I2S jest jeszcze Sonic (przyspieszenie odtwarzania mowy bez zmiany wysokości).

Poza tym odtwarzanie mp3 to akurat najrzadziej używana funkcja w Lektonie - jeśli mam książkę w epub to wolę poświęcić parę minut na stworzenie słownika wymowy wyrazów obcych i wrzucić to na wbudowany syntezator. Przynajmniej czyta mi książkę, a nie (jak większość żywych "czytaczy") próbuje zrobić teatr z własną osobą w roli głównej. Może to zboczenie zawodowe (lata pracy w teatrze), ale nigdy nie uważałem, że jeśli ktoś jest zawodowym aktorem to koniecznie musi sprawdzić się jako lektor... 

 

  • Lubię! 1

@ethanak Dzięki za odpowiedź.
Czyli mp3 jest tylko dla kompresji mowy by zaoszczędzić miejsca. Czy ta biblioteka jest typu otwartego? Chciałbym się dowiedzieć skąd można pobrać kody źródłowe albo najlepiej jak to jest kodowane, by zrozumieć algorytm. Jestem ciekawy, czy można MP3 dekodować sprzętowo...

4 godziny temu, kroszkanorber napisał:

Czyli mp3 jest tylko dla kompresji mowy by zaoszczędzić miejsca

Skąd taki pomysł? MP3 to po prostu jeden ze sposobów kodowania stratnego audio (czyli mowy, muzyki i wszystkiego ogólnie co można usłyszeć). Lekton równie dobrze praktycznie bez zmiany kodu mógłby odtwarzać muzykę (tyle że nie ma takiej potrzeby). A kodek MP3 jest zastosowany wyłącznie dlatego, że audiobooki są rozprowadzane właśnie w tym formacie - po prostu każde praktycznie współczesne urządzenie jest w stnie odtworzyć taki plik. Do kompresji mowy są zupełnie inne kodeki (np. Speex, wojskowe MELP/MELPe czy oferujący największy stopień kompresji Codec2).

4 godziny temu, kroszkanorber napisał:

skąd można pobrać kody źródłowe albo najlepiej jak to jest kodowane, by zrozumieć algorytm

Z samego kodu nic nie zrozumiesz nie mając podstaw (matematyka). Oczywiście możesz popatrzeć na kody źródłowe (otwarte oczywiście) LAME (enkoder) czy MPG123 (dekoder) ale to raczej niewiele da. Ogólnie zasada działania tego typu kodeków sprowadza się do tego że enkoder po analizie źródłowego sygnału tworzy dane dla syntezatora (szukaj pod hasłem "szybka transformata Fouriera"), a dekoder (syntezator) tworzy w wyniku falę przypominającą w pewnym stopniu to, co enkoder dostał na wejście.

No i w przypadku Lektona odtwarzanie MP3 jest wyłącznie funkcją pomocniczą (poprzednia wersja w ogóle nie miała takiej możliwości), główne zadanie to synteza mowy (która z MP3 ani jakimikolwiek innymi kodekami nie ma nic wspólnego).

4 godziny temu, kroszkanorber napisał:

czy można MP3 dekodować sprzętowo...

Co rozumiesz przez "dekodowanie sprzętowe"? Czy jakiś DSP z zaszytym na stałe programem to "dekoder sprzętowy"? Chyba że chodzi o coś takiego jak DFPlayer Mini - no to jak widać można.

  • Pomogłeś! 1
3 godziny temu, ethanak napisał:

Co rozumiesz przez "dekodowanie sprzętowe"? Czy jakiś DSP z zaszytym na stałe programem to "dekoder sprzętowy"? Chyba że chodzi o coś takiego jak DFPlayer Mini - no to jak widać można.

Dekodowanie sprzętowe miałem na myśli w FPGA — czyli implementację algorytmu bez użycia gotowego DSP lub układów typu VS1053. Algorytmów MP3 nie rozumiem jeszcze w pełni, bo to już transformacje sygnału (FFT, MDCT, psychoakustyka). Żeby wejść w to głębiej, musiałbym najpierw ogarnąć podstawy matematyczne, a ja lubię zaczynać od fundamentów, żeby wiedzieć dlaczego coś działa, a nie tylko że działa.

Dzięki za wyjaśnienia i za sugestie dotyczące źródeł — na pewno przejrzę LAME i MPG123, nawet jeśli tylko poglądowo. Wiem też, że MP3 jest objęte prawami autorskimi, ale są ludzie, którzy zrobili własne implementacje od zera (np. kanał „Majsterkowanie i nie tylko” na YT), więc temat mnie ciekawi bardziej od strony edukacyjnej niż praktycznej.

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...