blob: a1339376a1975a13ab09988a7bbfdc0c15b5a292 [file] [log] [blame] [view]
# OpenHST : Open sourced Hotword Stress Test tool
Hotword stress test tool is a python script to measure the Google Hotword
performance on Android devices with simple test set up. The goal of OpenHST is
making Google Hotword Stress Test tool as an open source project so that Android
Partners can easily adapt on their development.
## Overview
![Hotsord Stress Test concept diagram](docs/image/HST_concept_diagram.png)
## Prerequsite
Before setting up your HST test environment, please make sure to meet following
preconditions.
* DSP hotword capability on test device (android handset)
* ADB connection between the test server and android handset
* Internet connection on android handset
* No screen lock setting on android handset
* Install Homebrew (Mac)
* Install [pyenv](https://github.com/pyenv/pyenv#installation) for Linux and Mac.
* Install GNU make(3.81 above) on test machine (Linux, Mac, Windows)
## Test environment setup
Please follow below steps to set up HST on your test machine and make sure that
no error popped up during the installation.
__Linux & Mac__
1. pyenv install 3.6.8
1. pyenv shell 3.6.8
1. make start
1. chmod +x ./start_venv.sh
1. source env/bin/activate
1. ./start_venv.sh
1. make proto-compile
__Windows__
1. install python3.7.5
1. make start
1. .\env\Scripts\activate
1. pip3 install -r requirements.txt
1. Download [protoc.ext (3.11.4 version)](https://github.com/protocolbuffers/protobuf/releases/download/v3.11.4/protoc-3.11.4-win64.zip) from [github](https://github.com/protocolbuffers/protobuf/releases/tag/v3.11.4)
1. Decompress protoc-3.11.4-win64.zip and copy bin/protoc.exe to env/ folder
1. Decompress protoc-3.11.4-win64.zip and copy include/* under env/include folder
1. make proto-compile
## Voice model training
Before conducting stress test, voice model should be trained with the recorded tts sound.
1. Please follow the guide in "Train voice model" chapter in [OEM Hotword Stress Test with OpenHST](https://docs.google.com/presentation/d/e/2PACX-1vR5kjJfMZGMLMeyFV3AmzgGT1gniS1URztYqv4IJleWiSAtDNYNodsF1FMJHT57duP8CPr5oXvEEqCb/pub?start=false&loop=false&delayms=3000)
**Note** for voice match with query phrases, please use `enroll_with_queries` as test_name for voice match enrollment.
## Stress Test
Please refer to the guide in "Run Stress Test" chapter in [OEM Hotword Stress Test with OpenHST](https://docs.google.com/presentation/d/e/2PACX-1vR5kjJfMZGMLMeyFV3AmzgGT1gniS1URztYqv4IJleWiSAtDNYNodsF1FMJHT57duP8CPr5oXvEEqCb/pub?start=false&loop=false&delayms=3000) and run the hotword stress test.
1. python stress_test.py --test_name dsp_trigger_and_screen_off --num_iterations 3000 --output_root test_out
1. Over 95% pass ratio from 3000 test cycle would be fair enough to declare that the device passed the hotowrd stress test
## Contacts
Join our [mailing list](https://groups.google.com/g/openhst) for discussions and
announcements.