запись звука в Linux - захват обеих сторон разговора VoIP

Для этого вы можете использовать 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
3
24.08.2013, 04:43
2 ответа

Решение состоит в использовании комплекта JACK Audio Connection ( http://jackaudio.org/ ). В итоге я установил дистрибутив KX Studio (на основе Debian / Ubuntu) и удалил PulseAudio для простоты.

Подкасты будут интервью, проводимыми через телефонную связь по протоколу передачи голоса по IP (SIP). Я хочу, чтобы одна сторона разговора была на одном канале, а другая - на другом.

JACK позволяет мне делать именно это.

0
29.04.2021, 00:46

Вот решение с PulseAudio и gstreamer:

  1. Узнайте имена устройств gstreamer для монитора динамика и микрофона, просмотрев вывод pactl list | grep -A2 'Source #'. Эти два устройства соответствуют двум сторонам вызова.

  2. Запустите команду 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
    
  3. В результате у вас будет две отдельные записи recording1.oggи recording2.oggдля двух сторон вызова. Они начинаются в одно и то же время, поэтому их можно использовать как разные треки, например, в Audacity.

Команда gstreamer просто открывает два отдельных источника и два отдельных приемника и направляет один источник к одному приемнику каждый. Он также может смешивать несколько источников в один приемник, но в данном случае это то, чего вы не хотите.

0
29.04.2021, 00:46

Теги

Похожие вопросы