我尝试过仅配置 Google 的 AIY HAT,它在单个卡和设备下显示扬声器和麦克风(hw:0,0)。
我还尝试使用名为 Blue Snowball 的独立 USB 麦克风(hw:1,0)和用于扬声器的 google AIY HAT(hw:0),但不起作用。
错误:
2020-04-26 15:48:17.583] [LOG] [HOTWORD] Detector starts listening.
[2020-04-26 15:48:17.701] [LOG] [HOTWORD:LPCM16] arecord: main:828:
[2020-04-26 15:48:17.703] [LOG] [HOTWORD:LPCM16] audio open error: Device or resource busy
[2020-04-26 15:48:17.706] [LOG] [HOTWORD] Final Result: { detected: false }
[2020-04-26 15:48:17.724] [LOG] [HOTWORD] begins.
[2020-04-26 15:48:17.726] [LOG] [HOTWORD] Detector starts listening.
[2020-04-26 15:48:17.808] [LOG] [HOTWORD:LPCM16] arecord: main:828: audio open error: Device or resource busy
树莓派版本:
pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@raspberrypi:~ $
a记录-l:
@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: sndrpigooglevoi [snd_rpi_googlevoicehat_soundcar], device 0: Google voiceHAT SoundCard HiFi voicehat-codec-0 [Google voiceHAT SoundCard HiFi voicehat-codec-0]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: Snowball [Blue Snowball], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
aplay -l:
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpigooglevoi [snd_rpi_googlevoicehat_soundcar], device 0: Google voiceHAT SoundCard HiFi voicehat-codec-0 [Google voiceHAT SoundCard HiFi voicehat-codec-0]
Subdevices: 0/1
.asoundrc:
pcm.!default{
type asym
playback.pcm{
type hw
card 0
}
capture.pcm{
type plug
slave.pcm "hw:1,0"
}
}
ctl.!default{
type hw
card 0
}
配置文件
/* Magic Mirror Config Sample
*
* By Michael Teeuw http://michaelteeuw.nl
* MIT Licensed.
*
* For more information how you can configurate this file
* See https://github.com/MichMich/MagicMirror#configuration
*
*/
var config = {
address: "localhost", // Address to listen on, can be:
// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
// - another specific IPv4/6 to listen on a specific interface
// - "", "0.0.0.0", "::" to listen on any interface
// Default, when address config is left out, is "localhost"
port: 8080,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses
// or add a specific IPv4 of 192.168.1.5 :
// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
// or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
language: "en",
timeFormat: 24,
units: "metric",
// serverOnly: true/false/"local" ,
// local for armv6l processors, default
// starts serveronly and then starts chrome browser
// false, default for all NON-armv6l devices
// true, force serveronly mode, because you want to.. no UI on this device
modules: [
{
module: "alert",
},
{
module: "updatenotification",
position: "top_bar"
},
{
module: "clock",
position: "top_left"
},
{
module: "calendar",
header: "US Holidays",
position: "top_left",
config: {
calendars: [
{
symbol: "calendar-check",
url: "webcal://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics" }
]
}
},
{
module: "compliments",
position: "lower_third"
},
{
module: "currentweather",
position: "top_right",
config: {
location: "New York",
locationID: "", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "YOUR_OPENWEATHER_API_KEY"
}
},
{
module: "weatherforecast",
position: "top_right",
header: "Weather Forecast",
config: {
location: "New York",
locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city
appid: "YOUR_OPENWEATHER_API_KEY"
}
},
{
module: "newsfeed",
position: "bottom_bar",
config: {
feeds: [
{
title: "New York Times",
url: "http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml"
}
],
showSourceTitle: true,
showPublishDate: true,
broadcastNewsFeeds: true,
broadcastNewsUpdates: true
}
},
{
module: "MMM-Hotword",
position: "top_right",
config: {
chimeOnFinish: null,
mic: {
recordProgram: "arecord",
device: "plughw:1"
},
models: [
{
hotwords : "smart_mirror",
file : "smart_mirror.umdl",
sensitivity : "0.5",
},
],
commands: {
"smart_mirror": {
notificationExec: {
notification: "ASSISTANT_ACTIVATE",
payload: (detected, afterRecord) => {
return {profile:"default"}
}
},
restart:false,
afterRecordLimit:0
}
}
}
},
{
module: "MMM-AssistantMk2",
position: "top_right",
config: {
deviceLocation: {
coordinates: {
latitude: 37.5650168, // -90.0 - +90.0
longitude: 126.8491231, // -180.0 - +180.0
},
},
record: {
recordProgram : "arecord",
device : "plughw:1",
},
notifications: {
ASSISTANT_ACTIVATED: "HOTWORD_PAUSE",
ASSISTANT_DEACTIVATED: "HOTWORD_RESUME",
},
useWelcomeMessage: "brief today",
profiles: {
"default" : {
lang: "en-US"
}
},
}
},
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {module.exports = config;}
答案1
我知道这是旧的,虽然这是我的 .asoundrc 工作正常,希望它有帮助。但是,我无法让 MMM-Hotword 触发 MMM-AssistaneMK
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:1,0"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}