ReSpeaker에서 발화자의 목소리 방향 지정
음원 포지셔닝
음원 포지셔닝이란 어디서 들리는 소리인지 스테레오와 오보에를 상상해보세요.스테레오는 음원으로 포지셔닝돼 악기가 뒤에서 들려오는 느낌을 준다.
이번에 사용ReSpeaker Mic Array v2.0.
사용 방법과 기타 옵션은 기본적으로 여기에 쓰여 있으니 간단하게 요약해 봅시다.
음원 포지셔닝 설치
컨디션
ubuntu 18.04
python3
환경 구조
sudo apt-get update
sudo pip install pyusb click
git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
sudo python dfu.py --download 6_channels_firmware.bin
usb_4_mic_아라이 폴더가 만들어진 것 같습니다.
다음 코드를 만들고 실행합니다.
DOA.pyfrom tuning import Tuning
import usb.core
import usb.util
import time
dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)
if dev:
Mic_tuning = Tuning(dev)
print(Mic_tuning.direction)
while True:
try:
print(Mic_tuning.direction)
time.sleep(1)
except KeyboardInterrupt:
break
출력결과↓~/usb_4_mic_array$ python3 DOA.py
122
121
120
122
오류 발생 시
이 코드를 실행할 때
ImportError: No module named usb.core
하면, 만약, 만약...
sudo apt-get install python-usb python3-usb
집행하다.
또한permission denied라면 udev를 통해 장치에 접근할 수 있습니다.sudo touch /etc/udev/rules.d/10-any_name_is_ok.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2886", ATTR{idProduct}=="0018", MODE="0666", GROUP="plugdev"' | sudo tee 10-any_name_is_ok.rules
sudo gpasswd -a ユーザー名 plugdev
sudo chmod a+r /etc/udev/rules.d/10-any_name_is_ok.rules
sudo udevadm control --reload-rules
udevadm trigger
나중에 시동을 걸면 반영될 겁니다.
다른 사람의 목소리에만 반응하다
ReSpeaker에는 여러 가지 옵션이 있습니다.
옵션 매개변수 목록(FAQ1)
예를 들어 SPEECHDETECTED를 사용하여 사람의 목소리만 있는 음원 포지셔닝을 실현했다.
0 = false (no speech detected)
1 = true (speech detected)
따라서 DOA는 다음과 같습니다.py를 변경합니다.
voise_angle.pyfrom tuning import Tuning
import usb.core
import usb.util
import time
dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)
if dev:
Mic_tuning = Tuning(dev)
while True:
try:
if Mic_tuning.read('SPEECHDETECTED') == 1:
print(Mic_tuning.direction)
time.sleep(1)
except KeyboardInterrupt:
break
이렇게 하면 예를 들어 박수를 쳐도 각도가 출력되지 않는다.
주의
이 코드들은 usb입니다4_mic_array/Tuning.py를 사용했기 때문에 이 폴더 이외에 Tuning을 실행해야 합니다.py를 폴더에 넣거나 코드에 넣거나 Tuning을 합니다.py의 함수 등을 기록해야 합니다.
다음은 폴더에 관계없이 사용할 수 있는 덮어쓰기 예입니다.
get_angle.pyfrom time import sleep
import usb
import usb.core
import usb.util
import struct
dev = usb.core.find(idVendor=0x2886,idProduct=0x0018)
TIMEOUT = 100000
# PARAMETERS for sound localization
PARAMETERS = {
'DOAANGLE': (21, 0, 'int', 359, 0, 'ro', 'DOA angle. Current value. Orientation depends on build configuration.'),
'SPEECHDETECTED': (19, 22, 'int', 1, 0, 'ro', 'Speech detection status.', '0 = false (no speech detected)',
'1 = true (speech detected)'),
}
def read(param_name):
try:
data = PARAMETERS[param_name]
except KeyError:
return
id = data[0]
cmd = 0x80 | data[1]
if data[2] == 'int':
cmd |= 0x40
length = 8
response = dev.ctrl_transfer(
usb.util.CTRL_IN | usb.util.CTRL_TYPE_VENDOR | usb.util.CTRL_RECIPIENT_DEVICE,
0, cmd, id, length, TIMEOUT)
response = struct.unpack(b'ii', response.tostring())
if data[2] == 'int':
result = response[0]
else:
result = response[0] * (2. ** response[1])
return result
# Find angular
if dev:
while True:
if read('SPEECHDETECTED') == 1:
print(read('DOAANGLE'))
sleep(1)
이렇게 되면 어느 폴더 아래에서도 음원을 찾을 수 있다.
사은품: LED 컨트롤
좋아하는 곳에서 다음 동작을 수행합니다(home도 좋고 usb4 micaray 내에서도 좋아요)git clone https://github.com/respeaker/pixel_ring.git
cd pixel_ring
sudo python setup.py install
sudo python examples/usb_mic_array.py
이 작업을 수행한 후
wakeup의 발광 방식 3초.
think의 발광 방식 3초
6초 광선
오프 발광 3초
만들다
다른 발광 방식은 픽셀입니다.ring/pixel_ring/usb_pixel_ring_v2.py를 참조하십시오.
Reference
이 문제에 관하여(ReSpeaker에서 발화자의 목소리 방향 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hir-osechi/items/6e01a2f147c4bba23e0d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
컨디션
ubuntu 18.04
python3
환경 구조
sudo apt-get update
sudo pip install pyusb click
git clone https://github.com/respeaker/usb_4_mic_array.git
cd usb_4_mic_array
sudo python dfu.py --download 6_channels_firmware.bin
usb_4_mic_아라이 폴더가 만들어진 것 같습니다.다음 코드를 만들고 실행합니다.
DOA.py
from tuning import Tuning
import usb.core
import usb.util
import time
dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)
if dev:
Mic_tuning = Tuning(dev)
print(Mic_tuning.direction)
while True:
try:
print(Mic_tuning.direction)
time.sleep(1)
except KeyboardInterrupt:
break
출력결과↓~/usb_4_mic_array$ python3 DOA.py
122
121
120
122
오류 발생 시
이 코드를 실행할 때
ImportError: No module named usb.core
하면, 만약, 만약...
sudo apt-get install python-usb python3-usb
집행하다.또한permission denied라면 udev를 통해 장치에 접근할 수 있습니다.
sudo touch /etc/udev/rules.d/10-any_name_is_ok.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2886", ATTR{idProduct}=="0018", MODE="0666", GROUP="plugdev"' | sudo tee 10-any_name_is_ok.rules
sudo gpasswd -a ユーザー名 plugdev
sudo chmod a+r /etc/udev/rules.d/10-any_name_is_ok.rules
sudo udevadm control --reload-rules
udevadm trigger
나중에 시동을 걸면 반영될 겁니다.다른 사람의 목소리에만 반응하다
ReSpeaker에는 여러 가지 옵션이 있습니다.
옵션 매개변수 목록(FAQ1)
예를 들어 SPEECHDETECTED를 사용하여 사람의 목소리만 있는 음원 포지셔닝을 실현했다.
0 = false (no speech detected)
1 = true (speech detected)
따라서 DOA는 다음과 같습니다.py를 변경합니다.
voise_angle.py
from tuning import Tuning
import usb.core
import usb.util
import time
dev = usb.core.find(idVendor=0x2886, idProduct=0x0018)
if dev:
Mic_tuning = Tuning(dev)
while True:
try:
if Mic_tuning.read('SPEECHDETECTED') == 1:
print(Mic_tuning.direction)
time.sleep(1)
except KeyboardInterrupt:
break
이렇게 하면 예를 들어 박수를 쳐도 각도가 출력되지 않는다.주의
이 코드들은 usb입니다4_mic_array/Tuning.py를 사용했기 때문에 이 폴더 이외에 Tuning을 실행해야 합니다.py를 폴더에 넣거나 코드에 넣거나 Tuning을 합니다.py의 함수 등을 기록해야 합니다.
다음은 폴더에 관계없이 사용할 수 있는 덮어쓰기 예입니다.
get_angle.py
from time import sleep
import usb
import usb.core
import usb.util
import struct
dev = usb.core.find(idVendor=0x2886,idProduct=0x0018)
TIMEOUT = 100000
# PARAMETERS for sound localization
PARAMETERS = {
'DOAANGLE': (21, 0, 'int', 359, 0, 'ro', 'DOA angle. Current value. Orientation depends on build configuration.'),
'SPEECHDETECTED': (19, 22, 'int', 1, 0, 'ro', 'Speech detection status.', '0 = false (no speech detected)',
'1 = true (speech detected)'),
}
def read(param_name):
try:
data = PARAMETERS[param_name]
except KeyError:
return
id = data[0]
cmd = 0x80 | data[1]
if data[2] == 'int':
cmd |= 0x40
length = 8
response = dev.ctrl_transfer(
usb.util.CTRL_IN | usb.util.CTRL_TYPE_VENDOR | usb.util.CTRL_RECIPIENT_DEVICE,
0, cmd, id, length, TIMEOUT)
response = struct.unpack(b'ii', response.tostring())
if data[2] == 'int':
result = response[0]
else:
result = response[0] * (2. ** response[1])
return result
# Find angular
if dev:
while True:
if read('SPEECHDETECTED') == 1:
print(read('DOAANGLE'))
sleep(1)
이렇게 되면 어느 폴더 아래에서도 음원을 찾을 수 있다.사은품: LED 컨트롤
좋아하는 곳에서 다음 동작을 수행합니다(home도 좋고 usb4 micaray 내에서도 좋아요)
git clone https://github.com/respeaker/pixel_ring.git
cd pixel_ring
sudo python setup.py install
sudo python examples/usb_mic_array.py
이 작업을 수행한 후wakeup의 발광 방식 3초.
think의 발광 방식 3초
6초 광선
오프 발광 3초
만들다
다른 발광 방식은 픽셀입니다.ring/pixel_ring/usb_pixel_ring_v2.py를 참조하십시오.
Reference
이 문제에 관하여(ReSpeaker에서 발화자의 목소리 방향 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hir-osechi/items/6e01a2f147c4bba23e0d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)