- To create conda environment:
conda create --name yamnet-env python=3.8
conda activate yamnet-env - To install some libs for audio task:
sudo apt-get update
sudo apt-get install libsndfile1 -y
sudo apt-get install ffmpeg -y- To install requirements:
pip install -r requirements.txt- Updated soon
- To download esc50 dataset:
python3 main.py --scenario download_data --dataset_name esc-50-
Flag:
--dataset_name: select dataset (esc-50,speech-commands,background)
-
To unzip dataset:
unzip ./dataset-esc50/esc-50.zip- To create category dataset:
python3 main.py --scenario create_category_dataset - To create splited dataset:
python3 main.py --scenario split_dataset --length_audio 2 --step 0.15- Flag:
--length_audio: length of the sliding window--step: length of the hope of the sliding window
- To train test split:
python3 main.py --scenario train_test_split --test_data_ratio 0.2 - Flags:
--test_data_ratio: ratio of test and train data
- To run training:
python3 main.py --scenario train \
--model Yamnet \
--use_custom_dataset \
--train_data_ratio 0.8 \
--epochs 100 \
--batch_size 16 \
--tflite_file_name esc_2s_015_new.tflite \
--save_path ./model_2s_015_new-
Flag:
--model: select model (Yamnet,BrowserFft)--train_data_ratio: ratio of train data and dev data--epochs: num epochs--batch_size: num batch size--tflite_file_name: the tflite model name--save_path: path to directory contains model
-
To check tflite_model_info:
python3 main.py --scenario tflite_model_info- To modify parameters, go to
scenario/args.pyor through command.
- To install, read this tutorial
https://linuxhint.com/install-android-studio-linux-mint-and-ubuntu/ - Or run the following commands:
sudo apt update
sudo apt install openjdk-11-jdk
sudo snap install android-studio –classic- To get the repo
https://github.com/tensorflow/examples/tree/master/lite/examples/audio_classification/android:
git clone https://github.com/tensorflow/examples.git
cp ./examples/lites/examples/audio_classification ./
cd audio_classification- Start Android Studio, open the project located in
audio_classification/android, run app with default model:
- Select target device menu.
- Click `Run`.- To run with yourself model, copy
path/to/esc_model.tfliteto the android app:
cp path/to/esc_model.tflite audio_classification/android/app/src/main/assets/Go to /android/app/src/main/java/org/tensorflow/lite/examples/audio/AudioClassificationHelper.kt.
- To change model name, at line 136:
const val YAMNET_MODEL = "path/to/esc_model.tflite"- To change length recordings, (change 1000ms->2000ms), at line 105:
val lengthInMilliSeconds = ((classifier.requiredInputBufferSize * 1.0f) /
classifier.requiredTensorAudioFormat.sampleRate) * 2000- To get the result of custom model, change output index from 0->1 (0: result from original yamnet, 1: result from custom yamnet), at line 122:
listener.onResult(output[1].categories, inferenceTime)- Click
Runto build app. In the toolbar, to build APK file, click `Build>Build Bunder(s)/APK(s)>Build APK(s) - Get the APK file at
/audio_classification/android/app/build/intermediates/apk/debug - Copy the APK file to the android phone and install.