Для этого вы можете использовать grep
, awk
и sed
. Во-первых, отфильтруйте нежелательную первую строку, содержащую слово получено
(вы должны использовать здесь уникальные выражения, чтобы убедиться, что фильтруется только эта строка), что позволит awk
разделить следующие строки на , а затем удалите
<
и >
с помощью sed
:
cat a.txt | grep -v received | awk '{print $1 " " $5}' | sed -e 's/[<>]//g'
В приведенном выше примере a.txt
содержит input
received timestamp=1459434658969:
ABC: Field id=0 double 11.4
DEF: Field id=1 string >def<
GHI: Field id=2 string >g_hi<
Результат:
ABC: 11.4
DEF: def
GHI: g_hi
Решение состоит в использовании комплекта JACK Audio Connection ( http://jackaudio.org/ ). В итоге я установил дистрибутив KX Studio (на основе Debian / Ubuntu) и удалил PulseAudio для простоты.
Подкасты будут интервью, проводимыми через телефонную связь по протоколу передачи голоса по IP (SIP). Я хочу, чтобы одна сторона разговора была на одном канале, а другая - на другом.
JACK позволяет мне делать именно это.
Вот решение с PulseAudio и gstreamer:
Узнайте имена устройств gstreamer для монитора динамика и микрофона, просмотрев вывод pactl list | grep -A2 'Source #'
. Эти два устройства соответствуют двум сторонам вызова.
Запустите команду gstreamer следующим образом, указав имена ваших устройств вместоdevice=…
:
gst-launch-1.0 -e \
pulsesrc device=alsa_input.usb-046d_0819_561F63A0-02.mono-fallback \
! queue ! audioresample ! audioconvert \
! vorbisenc ! oggmux ! filesink location=recording1.ogg \
pulsesrc device=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor \
! queue ! audioresample ! audioconvert \
! vorbisenc ! oggmux ! filesink location=recording2.ogg
В результате у вас будет две отдельные записи recording1.ogg
и recording2.ogg
для двух сторон вызова. Они начинаются в одно и то же время, поэтому их можно использовать как разные треки, например, в Audacity.
Команда gstreamer просто открывает два отдельных источника и два отдельных приемника и направляет один источник к одному приемнику каждый. Он также может смешивать несколько источников в один приемник, но в данном случае это то, чего вы не хотите.