2.7 KiB
in vscode, create a new android app that will trigger specific function on physical key press. we should be able to map the specific action in the android OS. the action will listen on on the microphone and will stream the audio to a server and will show the server responses on the screen
you're in a shell console at a root folder of a new software project. we use vscode-server. let's create a mobile app (prioritize android, and plan to also support iOS) which will send the audio input to tts llm plan for the following extesion features in the future:
- ability to listen in the background for a wake word and send the following voice command
- ability to listen on hardware button press, or O buttton hold or other android fast access shortcut intent
abc@8625820ec90d:/workspace/repos/git.d-popov.com/ai-kevin/agent-mobile$ npx react-native init artimobile Run instructions for Android: • Have an Android emulator running (quickest way to get started), or a device connected. • cd "/workspace/repos/git.d-popov.com/ai-kevin/agent-mobile/artimobile" && npx react-native run-android
info 💡 Tip: Make sure that you have set up your development environment correctly, by running npx react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor
#:host conda search openjdk conda install -c conda-forge openjdk=17 java -version
#:host sudo apt-get install adb
: emu androidusr
cd /home/androidusr/tmp && npx react-native run-android
RUN ln -s ${ANDROID_HOME}/emulator/emulator /usr/bin/
/emulator/emulator -list-avds emulator -avd samsung_galaxy_s10_14.0
update jdk
FROM budtmo/docker-android:emulator_11.0_v2.0
RUN apt-get update &&
apt-get install -y openjdk-17-jdk &&
apt-get clean;
Set JAVA_HOME environment variable to Java 17
ENV JAVA_HOME /usr/lib/jvm/java-17-openjdk-amd64
https://jdk.java.net/
or https://reactnative.dev/docs/environment-setup?os=linux&platform=android&guide=native#jdk-studio
wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz cd /home/androidusr/download && tar -xzf openjdk-21.0.2_linux-x64_bin.tar.gz -C /home/androidusr/jdk export JAVA_HOME=/home/androidusr/jdk/jdk-21.0.2 export PATH=$JAVA_HOME/bin:$PATH source ~/.bashrc
17
tar -xzf jdk-17.0.8_linux-x64_bin.tar.gz -C /home/androidusr/jdk export JAVA_HOME=/home/androidusr/jdk/jdk-17.0.8 export PATH=$JAVA_HOME/bin:$PATH source ~/.bashrc
cd /home/androidusr/tmp npx react-native run-android npx react-native start
install voice on dev env (emulator)
npm install @react-native-voice/voice react-native link @react-native-voice/voice
release
cd android && ./gradlew assembleRelease