/ / Jak przechwytywać dane głosu PCM przez port szeregowy i proces? - Linux, port szeregowy, głos, modem, pcm

Jak przechwytywać dane głosu PCM przez port szeregowy i procesować? - Linux, port szeregowy, głos, modem, pcm

Mam modem telefoniczny (SIM5320EVB), który dajedane głosowe na ttyUSB0 jako PCM z 1600 bajtami na każde 100ms.Iam w stanie zobaczyć dane na minicom. Jak przechwytywać dane PCM w Linuksie (korzystam z ubuntu) i słyszeć je na żywo w locie lub co najmniej zapisywać i odtwarzać dane? Czy jest dostępna jakaś aplikacja lub API? Jeśli zasugerujesz podejście conajmniej postaram się opracować jedno ...

Odpowiedzi:

1 dla odpowiedzi № 1
cat /dev/ttyUSB0 > my_cap_file
# make some noise for 5s for example, then hit ^C

następnie zdobądź Śmiałość i spróbuj otworzyć swój plik, próbując różnych formatów wejściowych. Powinieneś być w stanie usłyszeć dźwięk, który wytworzyłeś, jeśli zgadniesz odpowiedni format.


0 dla odpowiedzi nr 2

zainstalować sox dla play polecenie i użycie: play -r 8000 -c 1 -t raw -e signed-integer -b 16 /dev/ttyUSB0. Oznacza to: przepływność 8 kHz, 1 kanał (mono), dane surowe (PCM), format jest liczbą całkowitą 16 bitów, a dane można odczytać z ttyUSB0.

To wymaga sox aby móc odtwarzać dźwięk w systemie; Odniosłem sukces pulseaudio dla podstawowego systemu dźwiękowego.

Może być konieczne zmodyfikowanie rozmiaru bufora dla play. Domyślnie buforuje dane, co powoduje małe, ale bardzo zauważalne opóźnienie.