Raspberry Pi 3B + Bluetooth 스피커로 Amazon Alexa를 싸게 구축 (1 우선 소리를 낸다)
5366 단어 RaspberryPi알렉사블루투스Raspberrypi3자바
큰 목적
Amazon Echo를 마침내 구입할 수 있고 시험해 보면 역시 기술 혁신을 느꼈습니다.
뭐니뭐니해도 자신보다 -28세의 딸이 설명서도 보지 않고 "Alexa를 잡자"라고 말해 대화가 성립하고 있다.
그런데, 2대 사고 싶지만 아마존으로부터 초대가 오지 않는 것입니다. 손에 RaspberryPi가 있습니다.
그럴 때 손이 있습니다. Raspberry Pi를 Amazon Echo로 만드는 손이.
Amazon은 개발자용으로 AVS(Amazon Voice Service)를 무료 배포하고 있으며, 그 안에 Alexa(Amazon Echo의 목소리)가 들어 있다는 것. 어떻게든 움직이고 싶다.
지금부터 Raspberry Pi 3B만의 상황에서 필요한 하드웨어를 가능한 한 저렴한 가격으로 사서 Echo 상당의 Alexa 시동을 목표로 합니다.
Raspberry Pi로 Echo를 만드는 선구자의 기사는 아래와 같다.
이 장: 우선 스피커가 울리지 않는다. . . 블루투스로 무려 가다랭이.
라즈파이에는 스피커용 아날로그 출력이 있으므로 거기에서 소리를 내는 것은 어떻게 든 됩니다.
(mp3을 재생하려면 apt-get install mpg321)
이번에는 어떻게든 무선 스피커에서 소리를 내고 싶다. 그렇지 않으면 Alexa의 목소리도 노래도들을 수 없다.
(노래 : h tp // w w. 아니. 이. jp / 네 ws / archi c ㎇ s / 1712/19 / 네 ws097. HTML)
구매품
라즈파이에는 스피커용 아날로그 출력이 있으므로 거기에서 소리를 내는 것은 어떻게 든 됩니다.
(mp3을 재생하려면 apt-get install mpg321)
이번에는 어떻게든 무선 스피커에서 소리를 내고 싶다. 그렇지 않으면 Alexa의 목소리도 노래도들을 수 없다.
(노래 : h tp // w w. 아니. 이. jp / 네 ws / archi c ㎇ s / 1712/19 / 네 ws097. HTML)
구매품
목욕에서도 잡을 것 같습니다.
기존품
우선 준비
Raspberry Pi 최신
# sudo apt-get dist-upgrade
# sudo rpi-update
라즈파이에서 소리를 낸다
라즈파이에서 소리를 울리려면 PulseAudio라는 데몬이 움직일 필요가 있다고합니다.
sudo apt-get install pulseaudio pavucontrol
pulseaudio -D
이것으로 우선 아날로그 출력에서는 소리가 울릴 것입니다.
예를 들어 mp3 파일이 손에
mpg321 Chicken.mp3
그렇다면 예를 들면 치킨 어택도 재생할 수 있습니다.
무선 스피커를 라즈파이에 연결
무선 스피커를 시작합니다.
우선은 Bluetooth로서 페어링. 아래 기사에 자세한 내용이 적혀 있습니다.
sudo apt-get install pi-bluetooth blueman pulseaudio-module-bluetooth
pi@raspberrypi:~ $ bluetoothctl
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent registered
[bluetooth]# scan on
Discovery started
[NEW] Device 30:21:18:71:23:51 Q50
[bluetooth]# pair 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Paired: yes
Pairing successful
[bluetooth]# trust 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Trusted: yes
[bluetooth]# connect 30:21:18:71:23:51
Attempting to connect to 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Connected: yes
Connection successful
서비스는 다음 파일을 작성하고,
[Unit]
Description=Pulse Audio
[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm
[Install]
WantedBy=multi-user.target
아래 명령으로 데몬을 시작하고 자동 시작 설정을 추가합니다.
$ sudo systemctl start pulseaudio.service
$ sudo systemctl status pulseaudio.service
$ sudo systemctl enable pulseaudio.service
무선 스피커에서 소리 내기
아래의 기사에 의하면, pulseaudio 데몬의 출력처에 bluetooth를 설정할 필요가 있다고 합니다.
아래를 끝에 추가합니다.
/etc/pulse/system.pa<前略>
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
/etc/dbus-1/system.d/pulseaudio-bluetooth.conf에 전송처 설정을 합니다. Bluez라는 것이 Bluetooth 전송 프로토콜 구현이라고 합니다.
/etc/dbus-1/system.d/pulseaudio-bluetooth.conf <policy user="pulse">
<!-- ここをコメントアウト
<allow own="org.pulseaudio.Server"/>
コメントアウト終わり -->
<allow send_destination="org.bluez"/>
</policy>
시스템을 재부팅.
sudo reboot
만약 소리가 울리지 않으면 pulse에서의 전송 액세스권이 없는 것일지도. 아래에서 액세스 권한을 부여합니다.
sudo usermod -a -G pulse-access,audio pi(ここはユーザ名)
(2018/1/3 추가) 나중에 Alexa를 제대로 bluetooth 스피커에서 말하기위한 Java 설정
나중에 Alexa 샘플 앱을 실행하지만 왠지 아날로그 출력에서만 소리를냅니다.
이 이유, 여러가지 조사하고 있던 결과, Java 어플리로부터만 소리가 울리지 않는다(다른 mpg321
음성을 내는 방법을 알았습니다.
h tps : // s c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 45847635 / 쟈 ゔ ぁ ぢ ぢ ぃ ぃ아오
조금 혼란 스럽지만 Alsa 사용자 랜드 → PulseAudio → Bluetooth 스피커라는 경로로 전송해야한다고합니다.
그런데 이를 위해 aplay
에서 아래 파일을 편집하고 아래 4 줄을 추가합니다.
/usr/lib/jvm/java-8-oracle/jre/lib/sound.propertiesjavax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
이 다음
스피커에서 소리가 들리므로, 다음은 음성으로 제어할 수 있도록 마이크를 붙입니다.
Reference
이 문제에 관하여(Raspberry Pi 3B + Bluetooth 스피커로 Amazon Alexa를 싸게 구축 (1 우선 소리를 낸다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hiroyuki_OSAKI/items/05b262c60c4889c07ca9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# sudo apt-get dist-upgrade
# sudo rpi-update
라즈파이에서 소리를 울리려면 PulseAudio라는 데몬이 움직일 필요가 있다고합니다.
sudo apt-get install pulseaudio pavucontrol
pulseaudio -D
이것으로 우선 아날로그 출력에서는 소리가 울릴 것입니다.
예를 들어 mp3 파일이 손에
mpg321 Chicken.mp3
그렇다면 예를 들면 치킨 어택도 재생할 수 있습니다.
무선 스피커를 라즈파이에 연결
무선 스피커를 시작합니다.
우선은 Bluetooth로서 페어링. 아래 기사에 자세한 내용이 적혀 있습니다.
sudo apt-get install pi-bluetooth blueman pulseaudio-module-bluetooth
pi@raspberrypi:~ $ bluetoothctl
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent registered
[bluetooth]# scan on
Discovery started
[NEW] Device 30:21:18:71:23:51 Q50
[bluetooth]# pair 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Paired: yes
Pairing successful
[bluetooth]# trust 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Trusted: yes
[bluetooth]# connect 30:21:18:71:23:51
Attempting to connect to 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Connected: yes
Connection successful
서비스는 다음 파일을 작성하고,
[Unit]
Description=Pulse Audio
[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm
[Install]
WantedBy=multi-user.target
아래 명령으로 데몬을 시작하고 자동 시작 설정을 추가합니다.
$ sudo systemctl start pulseaudio.service
$ sudo systemctl status pulseaudio.service
$ sudo systemctl enable pulseaudio.service
무선 스피커에서 소리 내기
아래의 기사에 의하면, pulseaudio 데몬의 출력처에 bluetooth를 설정할 필요가 있다고 합니다.
아래를 끝에 추가합니다.
/etc/pulse/system.pa<前略>
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
/etc/dbus-1/system.d/pulseaudio-bluetooth.conf에 전송처 설정을 합니다. Bluez라는 것이 Bluetooth 전송 프로토콜 구현이라고 합니다.
/etc/dbus-1/system.d/pulseaudio-bluetooth.conf <policy user="pulse">
<!-- ここをコメントアウト
<allow own="org.pulseaudio.Server"/>
コメントアウト終わり -->
<allow send_destination="org.bluez"/>
</policy>
시스템을 재부팅.
sudo reboot
만약 소리가 울리지 않으면 pulse에서의 전송 액세스권이 없는 것일지도. 아래에서 액세스 권한을 부여합니다.
sudo usermod -a -G pulse-access,audio pi(ここはユーザ名)
(2018/1/3 추가) 나중에 Alexa를 제대로 bluetooth 스피커에서 말하기위한 Java 설정
나중에 Alexa 샘플 앱을 실행하지만 왠지 아날로그 출력에서만 소리를냅니다.
이 이유, 여러가지 조사하고 있던 결과, Java 어플리로부터만 소리가 울리지 않는다(다른 mpg321
음성을 내는 방법을 알았습니다.
h tps : // s c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 45847635 / 쟈 ゔ ぁ ぢ ぢ ぃ ぃ아오
조금 혼란 스럽지만 Alsa 사용자 랜드 → PulseAudio → Bluetooth 스피커라는 경로로 전송해야한다고합니다.
그런데 이를 위해 aplay
에서 아래 파일을 편집하고 아래 4 줄을 추가합니다.
/usr/lib/jvm/java-8-oracle/jre/lib/sound.propertiesjavax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
이 다음
스피커에서 소리가 들리므로, 다음은 음성으로 제어할 수 있도록 마이크를 붙입니다.
Reference
이 문제에 관하여(Raspberry Pi 3B + Bluetooth 스피커로 Amazon Alexa를 싸게 구축 (1 우선 소리를 낸다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hiroyuki_OSAKI/items/05b262c60c4889c07ca9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sudo apt-get install pi-bluetooth blueman pulseaudio-module-bluetooth
pi@raspberrypi:~ $ bluetoothctl
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent registered
[bluetooth]# scan on
Discovery started
[NEW] Device 30:21:18:71:23:51 Q50
[bluetooth]# pair 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Paired: yes
Pairing successful
[bluetooth]# trust 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Trusted: yes
[bluetooth]# connect 30:21:18:71:23:51
Attempting to connect to 30:21:18:71:23:51
[CHG] Device 30:21:18:71:23:51 Connected: yes
Connection successful
[Unit]
Description=Pulse Audio
[Service]
Type=simple
ExecStart=/usr/bin/pulseaudio --system --disallow-exit --disable-shm
[Install]
WantedBy=multi-user.target
$ sudo systemctl start pulseaudio.service
$ sudo systemctl status pulseaudio.service
$ sudo systemctl enable pulseaudio.service
아래의 기사에 의하면, pulseaudio 데몬의 출력처에 bluetooth를 설정할 필요가 있다고 합니다.
아래를 끝에 추가합니다.
/etc/pulse/system.pa
<前略>
### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif
/etc/dbus-1/system.d/pulseaudio-bluetooth.conf에 전송처 설정을 합니다. Bluez라는 것이 Bluetooth 전송 프로토콜 구현이라고 합니다.
/etc/dbus-1/system.d/pulseaudio-bluetooth.conf
<policy user="pulse">
<!-- ここをコメントアウト
<allow own="org.pulseaudio.Server"/>
コメントアウト終わり -->
<allow send_destination="org.bluez"/>
</policy>
시스템을 재부팅.
sudo reboot
만약 소리가 울리지 않으면 pulse에서의 전송 액세스권이 없는 것일지도. 아래에서 액세스 권한을 부여합니다.
sudo usermod -a -G pulse-access,audio pi(ここはユーザ名)
(2018/1/3 추가) 나중에 Alexa를 제대로 bluetooth 스피커에서 말하기위한 Java 설정
나중에 Alexa 샘플 앱을 실행하지만 왠지 아날로그 출력에서만 소리를냅니다.
이 이유, 여러가지 조사하고 있던 결과, Java 어플리로부터만 소리가 울리지 않는다(다른 mpg321
음성을 내는 방법을 알았습니다.
h tps : // s c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 45847635 / 쟈 ゔ ぁ ぢ ぢ ぃ ぃ아오
조금 혼란 스럽지만 Alsa 사용자 랜드 → PulseAudio → Bluetooth 스피커라는 경로로 전송해야한다고합니다.
그런데 이를 위해 aplay
에서 아래 파일을 편집하고 아래 4 줄을 추가합니다.
/usr/lib/jvm/java-8-oracle/jre/lib/sound.propertiesjavax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
이 다음
스피커에서 소리가 들리므로, 다음은 음성으로 제어할 수 있도록 마이크를 붙입니다.
Reference
이 문제에 관하여(Raspberry Pi 3B + Bluetooth 스피커로 Amazon Alexa를 싸게 구축 (1 우선 소리를 낸다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hiroyuki_OSAKI/items/05b262c60c4889c07ca9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
javax.sound.sampled.Clip=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.Port=com.sun.media.sound.PortMixerProvider
javax.sound.sampled.SourceDataLine=com.sun.media.sound.DirectAudioDeviceProvider
javax.sound.sampled.TargetDataLine=com.sun.media.sound.DirectAudioDeviceProvider
스피커에서 소리가 들리므로, 다음은 음성으로 제어할 수 있도록 마이크를 붙입니다.
Reference
이 문제에 관하여(Raspberry Pi 3B + Bluetooth 스피커로 Amazon Alexa를 싸게 구축 (1 우선 소리를 낸다)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hiroyuki_OSAKI/items/05b262c60c4889c07ca9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)