Я пытаюсь создать виртуальный микрофон для Voice Over IP, который позволяет изменять звук перед его отправкой.
Я нахожусь на Ubuntu 16.04 с python 3.5
Чтобы уточнить:Я хочу иметь возможность получать звук со своего микрофона (реального микрофона). Изменить звук. Отправить его в «виртуальный микрофон». Выбрать виртуальный микрофон в Skype (или другом приложении VoIP). Человек, которому я звоню, получает измененный звук * 1005.*
Что мне нужно далеко: я включил snd-aloop sudo modprobe snd-aloop
- что дает мне 2 петлевых устройства.
У меня есть сценарий Python, использующий alsaaudio:
import alsaaudio, time, audioop
FRAME_SIZE = 48
def get_audio():
inp = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK,device='plughw:CARD=UB1,DEV=0') #actual mic
# Set attributes: Mono, 8000 Hz, 16 bit little endian samples
inp.setchannels(1)
inp.setrate(FRAME_SIZE*1000)
inp.setformat(alsaaudio.PCM_FORMAT_S16_LE)
inp.setperiodsize(160)
loopback_mic(inp)
def loopback_mic(inp):
middleman = alsaaudio.PCM(alsaaudio.PCM_PLAYBACK, alsaaudio.PCM_NONBLOCK, device='hw:0,0,1') # fake mic playback
middleman.setchannels(2)
fakemic = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NONBLOCK, device='hw:0,1,1') # fake mic 'output'
fakemic.setchannels(2)
while True:
l, data = inp.read()
if l%FRAME_SIZE==0:
middleman.write(data)
l1, data1 = fakemic.read()
time.sleep(.001)
, однако, когда я запускаю Skype, в качестве микрофона выбираю «Loopback Analog Stereo» и затем запускаю свой сценарий - другой человек не слышитчто-нибудь
мои соответствующие устройства:
**** List of CAPTURE Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 7/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: UB1 [Samson UB1], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
**** List of PLAYBACK Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
Subdevices: 7/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
...