Command Line Interface for Behavioral Signals Emotion and Behavior Recognition Engine in the Cloud
Homepage Repository PyPI Python
pip install behavioral-signals-cli==1.10.0
Command Line Interface for Behavioral Signals' Emotion and Behavior Recognition in the Cloud
The CLI allows you to easily:
pip3 install behavioral-signals-cli
python3 setup.py install
First request your account id and token for the Behavioral Signals Web API by sending an email to api@behavioralsignals.com
To test the service, you will need to download and extract the following set of audio and corresponding json files: [https://bitbucket.org/behavioralsignals/api-cli/downloads/data.zip]
Change working directory to data/audio.
Create the following configuration file, bsi-cli.conf:
sections:
default:
# The url of the web API
apiurl: https://<WEB_API_HOST>
# -- this apiid (aka cid) will not work -- replace it by your own token and id
apiid: "yyyy"
# -- this token will not work -- replace it by your own token and id
apitoken: "xxxxx"
behavioral_signals_cli --config bsi-cli.conf send_audio regression_test.csv pids.log
The .csv file just contains a list of the test audio files, plus a number indicating the number of channels in the files. The pids.log file is an empty file where the process ids of the created jobs will be written.
behavioral_signals_cli get_results pids.log results_dir
behavioral_signals_cli get_results_frames pids.log results
This may take some time since the CLI will keep polling for results till processing is finished. Inside the results folder you will get one .json file for each test audio file. The name of the json file will be the same as that of the corresponding audio file with the addition of a process id.
The CLI requires to be properly configured in order to interact with the Behavioral Signals API. The main variables needed to be configured are: the apiid (aka cid) a unique id provided by Behavioral Signals, apitoken (aka x-auth-token) also provided by Behavioral Signals and the apiurl, the current address of the callER service.
It allows a flexible configuration scheme by accepting with increasing priority:
The CLI may be used by exporting the following as environmental variables and provide the apiurl as a command line optional parameter (see Getting Help section on how to provide the apiurl value):
The CLI may be used by configuring all the required variables in a configuration file with sections, see the configuration file of the demo.
If not specified, it will look for bsi-cli.conf in the current directory or in the home directory for the .bsi-cli.conf.
If the required variables are provided as command line params, see the Getting Help section how this is done, all the other configurations will be ignored.
behavioral_signals_cli config or bsi-cli config
The output would be of the form:
*** bsi-cli configuration
apiid : yyyy
apitoken : xxxxx
apiurl : https://api.behavioralsignals.com
configLocation : bsi-cli.conf
configfile : None
log : WARNING
stag : default
***
Create a .csv file whose each row contains metadata for each of the audio files wish to send to the callER service. The .csv file must have the following form (order matters):
path/to/audio/file, number of channels, call direction, agent Id, agentTeam, campaign Id, calltype, calltime, timezone, ANI, tag, meta
The calltime in order to be parsed correctly should have one of the following formats: mm/dd/YYYY, mm-dd-YYYY, YYYY-mm-dd, dd-mm(letters)-YYYY, mm(letters)-dd-YYYY, dd/mm(letters)/YYYY, also it should be noted that timezone for the time being is ignored.
Create the bsi-cli.conf file as described in configuration section.
Run the CLI to submit the audio files:
behavioral_signals_cli --config [configuration_file] send_audio [csv_file] [pids_log]
The [pids_log] file is created automatically and stores the unique ids of the successfully created jobs, which are necessary in order to get the results.
Run the CLI to get the emotion/behavior recognition call-level overview, diarization and other results:
behavioral_signals_cli --config [configuration_file] get_results [pids_log] [results_dir]
The results will be written as .json files inside [results_dir] (polling may be performed if results are not readily available).
Run the CLI to get frame-level results:
behavioral_signals_cli --config [configuration_file] get_results_frames [pids_log] [results_dir]
The results will be written as "[filename]_[pid].json" files inside [results_dir] (polling may be performed if results are not readily available).
Run the CLI to get ASR results:
behavioral_signals_cli --config [configuration_file] get_results_asr [pids_log] [results_dir]
The results will be written as "[filename]_[pid]_words.json" files inside [results_dir] (polling may be performed if results are not readily available).
behavioral_signals_cli --help or bsi-cli --help
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage
_ project template.
.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _audreyr/cookiecutter-pypackage
: https://github.com/audreyr/cookiecutter-pypackage