как запустить тест
Следуйте инструкциям на cpp-docs-samples . Предварительные требования - Установите grpc , protobuf и googleapis и настройте среду как saib по ссылкам выше.
gstreamer вместо функции, используемой для имитации звука с микрофона
Для этой программы я создал конвейеры, которые
gst-launch-1.0 filesrc location=/path/to/file/FOO.wav ! wavparse ! audioconvert ! audio/x-raw,channels=1,depth=16,width=16,rate=44100 ! rtpL16pay ! udpsink host=xxx.xxx.xxx.xxx port=yyyy
Аудиофайл можетизменить на flac или mp3 с изменением соответствующих elemnets в конвейере
gst-launch-1.0 udpsrc port=yyyy ! "application/x-rtp,media=(string)audio, clock-rate=(int)44100, width=16, height=16, encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1, channel-positions=(int)1, payload=(int)96" ! rtpL16depay ! audioconvert ! audio/x-raw,format=S16LE ! filesink location=/path/to/where/you/want/to/dump/the/rtp/payloads/ABC.raw
Процесс извлечения полезных данных из потока rtp и записи его в файл выполняется в другом потоке, чем отправка данных в Google и чтениеответ.