2022.09.13 03:24
drukowanie dźwięku
Zastanawiałem się ostatnio, czy dałoby się (w praktyce, bo w teorii to oczywiście) wydrukować sobie nagranie dźwiękowe? Na przykład na zwykłej domowej drukarce, czarno-białej, laserowej. Tak, żeby potem dość łatwo dało się je odtworzyć. Pewnie odtworzyć z użyciem komputera, no bo jak? I ile stron zająłby krótki, powiedzmy sobie pięciosekundowy, fragment?
Jest tutaj coś za coś: da się zrobić, żeby ten wydruk zajmował mniej stron za cenę tego, że potem odkodowanie tego będzie trudniejsze (bo użyjemy jakiegoś wymyślnego zapisu, kodowania), albo odwrotnie, zajmie stron więcej, ale odkodowanie będzie łatwiejsze. I bardzo związany z tym coś za coś: jeśli chcemy, żeby taki wydruk był odporny na to, że część wydruku się uszkodzi, to wydruk musi być większy.
Przykładowo rozważmy, że drukuję to jako bajty zapisane szesnastkowo (czyli po prostu: DE AD BE EF...), czcionką dwunastką, bajty (czyli pary znaków) rozdzielane spacjami. Na stronie A4 zmieszczę wtedy około 50 wierszy po 22 bajty, czyli 1100 bajtów.
Rozważyłem dwie wersje: drukowanie tego jako po prostu PCM (żeby potem odtworzenie tego było bardzo proste, żeby nawet przy uszkodzeniu wydruku dało się odtworzyć to, co zostało) oraz jako drukowanie tego po zakodowaniu kodekiem speex (https://pl.wikipedia.org/wiki/Speex). Zrobiłem próby z przykładowym pięciosekundowym fragmentem mowy - kodowałem, odsłuchiwałem, żeby zobaczyć, jaka będzie jakość, i liczyłem, ile te pięć sekund by zajęło stron na wydruku. Oto wyniki:
Przy kodowaniu PCM:
22050 Hz, 16 bitów - jakość naprawdę ładna - 220500 bajtów, czyli 200 stron wydruku
22050 Hz, 8 bitów - pojawia się szum, poza tym wszystko ładnie słychać - 110250 bajtów, czyli 100 stron wydruku
11025 Hz, 16 bitów - trochę szkoda, że nie ma wysokich składowych - 110250 bajtów, czyli 100 stron wydruku
11025 Hz, 8 bitów - znowu pojawia się szum - 55125 bajtów, czyli 50 stron wydruku
8000 Hz, 16 bitów - jakość jak z magnetofonu, ale do zaakceptowania - 80000 bajtów, czyli 72 strony wydruku
8000 Hz, 8 bitów - znowu pojawia się szum - 40000 bajtów, czyli 36 stron wydruku
4000 Hz, 8 bitów - jakość ujdzie - 20000 bajtów, czyli 18 stron wydruku
2000 Hz, 8 bitów - no, w takiej jakości to już bez sensu - 10000 bajtów, czyli 9 stron wydruku
Przy kodowaniu speex:
22050 Hz, jakość 8 - jakość praktycznie jak PCM 22050 Hz 16 bitów - 24826 bajtów, czyli 22 strony wydruku
11025 Hz, jakość 8 - jakość praktycznie jak PCM 11025 Hz 16 bitów - 13732 bajtów, czyli 12 stron wydruku
8000 Hz, jakość 8 - jakość praktycznie jak PCM 8000 Hz 16 bitów - 10039 bajtów, czyli 9 stron wydruku
22050 Hz, jakość 4 - jakość ciut gorsza niż PCM 22050 Hz 16 bitów - 11635 bajtów, czyli 10 stron wydruku
11025 Hz, jakość 4 - jakość ciut gorsza niż PCM 11025 Hz 16 bitów - 7468 bajtów, czyli 7 stron wydruku
8000 Hz, jakość 4 - jakość ciut gorsza niż PCM 8000 Hz 16 bitów - 5494 bajtów, czyli 5 stron wydruku
Według wikipedii speex jest odporny na zgubione pakiety, ale nie na uszkodzone. Nie badałem tego porządnie, ale na próbę spróbowałem wprowadzać drobne uszkodzenia w pliku i słuchać, co wyjdzie. I mi wygląda na to, że jeśli uszkodzeniu ulegają pojedyńcze bajty albo nieduże grupy bajtów, to lepiej jednak (a przynajmniej niegorzej) mieć bajt zmieniony niż stracony - przy nawet jednym straconym bajcie od razu cały kawałek (pewnie ta ramka) się sypie - a przy zmienionym bajcie niekoniecznie (pewnie zależy, czy uszkodzenie jest w jakimś nagłówku ramki - zgaduję, że jest coś takiego - czy w danych). No ale jeśli drukować czcionką o stałej szerokości i numerować strony, to nawet jeśli jakiegoś fragmentu nie da się odczytać, to przynajmniej da się łatwo stwierdzić, ile tam było bajtów, i da się w to miejsce wpisać zera.
komentarze:
2022.09.13 14:43 J
https://en.wikipedia.org/wiki/Sound-on-film
2022.09.14 03:41 P.
@J: tak, sound-on-film to też fajny pomysł. Ale wydruk na drukarce ma spore zalety. Można tanio wydrukować w każdej firmie, która drukuje prace dyplomowe (9 groszy za kilobajt plus 9,99 zł za oprawę plus 8,99 zł za wysyłkę inpostem w firmie https://wydrukiioprawy.pl/cennik , czyli - przy kodowaniu speex z jakością magnetofonową 11 groszy za minutę nagrania, a z jakością ładną (22050 Hz, quality=4) 40 groszy za sekundę). A takie zapisanie dźwięku na kliszy to pewnie nie bardzo byłoby gdzie zrobić. No i później po latach odczytanie z kliszy wymagałoby specjalnego sprzętu, a litery z papieru zawsze się jakoś łatwiej odczytałoby.
powrót na stronę główną
RSS