Follow the system guide from Hackster here. Install GoogleNow APK with adb command below:
JCC$ ./adb install /Users/JCC/Downloads/GoogleNow.apk 3400 KB/s (2967611 bytes in 0.852s) pkg: /data/local/tmp/GoogleNow.apk Success
Setup Google account when you launch GoogleNow Apps from device. Wakeup with GoogleNow service. Execute GoogleNow as service feedback:
GoogleMusic connect from GoogleNow:About the Hardware/Software
This SPO provides hardware/software introduction as Qualcomm APQ8009 for IoT/IoE product development reference. SmartSpeaker connect with Service provider (GoogleNow) and transfer online information/concept which come from the customer; it plays songs via WiFi/Bluetooth and recognises long-distance voice commands by mounting a voice recognition engine. It also enables IoT device operation by voice and transmits alarm messages with light or sound via WiFi and Bluetooth.
Far-field keyword sporting can be supported by Qualcomm SVA. The requirement for support is “Beamforming”. Currently APQ8009 could support 4 mics and Qualcomm’s Beamforming performs very well for far-field voice input with only 3 mics; in case the customer insists on 4 mics, Qualcomm could support 3rd party Beamforming algorithm through porting to APQ8009 QDSP6 via OpenDSP.
The hardware board executes Qualcomm WCD9326 with audio codec and it supports 4 microphones, but actually it works with 3 microphones by the one time scan & noise cancellation.
Users 3 microphone inputs provide an ECNS solution in all use cases from Qualcomm hardware guidelines
JCC$ ./adb root && ./adb shell setprop persist.audio.fluence.audiorec True && ./adb reboot adbd is already running as root
Here’s the information with microphone placement guidelines from Qualcomm document:
- Fluence Pro ECNS solution employs 3 microphones on the smart speaker device.
a. Qualcomm recommend placing the microphone array on the top surface of the device.
b. Qualcomm recommend aflat top surface for placing the microphones.
c. If the top surface is tilted, an elevation of up to 15 degrees can be tolerated
- Mic1 to Mic2: 3 to 8cms.
- Mic1 to Mic3: 3 to 8cms.
e. The loud speaker should be placed far away (as far as possible) from the microphone array to minimize acoustic echo coupling.
f. The loud speaker should also be well sealed and electrically/mechanically well isolated from the microphones to minimize internal coupling of echo through the body of the device.
tinymix "MultiMedia1 Mixer QUAT_MI2S_TX" 1 tinymix "MI2S_TX Channels" "One" tinymix "AIF1_CAP Mixer SLIM TX6" 1 tinymix "SLIM TX6 MUX" "DEC6" tinymix "ADC MUX6" "AMIC" tinymix "AMIC MUX6" "ADC1" tinycap data/mic1.
-> Separate each microphone with voice inout and only mic1 have the data.
tinymix "AMIC MUX6" "ADC2" tinycap data/mic2.wav
-> Separate each microphone with voice inout and only mic2 have the data.
tinymix "AMIC MUX6" "ADC3" tinycap data/mic3.wav
-> Separate each microphone with voice inout and only mic3 have the data.
tinymix "AMIC MUX6" "ADC4" tinycap data/mic3.wav
-> Separate each microphone with voice inout and only mic4 have the data.
Check result with playback
tinymix "PRI_MI2S_RX Audio Mixer MultiMedia1" 1 tinymix "SLIM RX0 MUX" "AIF1_PB" tinymix "SLIM RX1 MUX" "AIF1_PB" tinymix "MI2S_RX Channels" "Two" tinymix "RX INT7_1 MIX1 INP0" "RX0" tinymix "RX INT8_1 MIX1 INP0" "RX1" tinymix "SpkrLeft COMP Switch" 1 tinymix "SpkrRight COMP Switch" 1 tinymix "SpkrLeft BOOST Switch" 1 tinymix "SpkrRight BOOST Switch" 1 tinymix "SpkrLeft SWR DAC_Port Switch" 1 tinymix "SpkrRight SWR DAC_Port Switch" 1 tinyplay data/mic1.wav tinyplay data/mic2.wav tinyplay data/mic3.wav tinyplay data/mic4.wav