NodeJS server for voice.suttacentral.net
- Linux Debian 10 or Ubuntu 20.04
- Nodejs 16.x
- Server credentials for AWS Polly account
Initialization requires super user access for your computer and you may be asked to enter your computer superuser password.
git clone https://github.com/sc-voice/scv-server
cd scv-server
install
To run scv-server locally on port 3000:
scripts/sc-voice --port:3000
./scripts/init.sh
Now update the content but do not reboot (i.e., Respond with no when asked to reboot)
./scripts/update-latest
As part of installation you will need to configure the AWS Polly TTS service adapter.
The Amazon AWS Polly Text-to-Speech service is used to convert multilingual sutta text to speech. Furthermore, sutta text contains many Pali references that require SSML customization specific to AWS. To enable AWS Polly, you will need to configure your credentials
Login to your AWS account and go to the IAM dashboard|Delete your root access keys|Manage Security Credentials|Access Keys...|Create New Access Key
{
"Bucket": "sc-voice-vsm",
"s3": {
"apiVersion": "2006-03-01",
"endpoint": "https://s3.us-west-1.amazonaws.com",
"region": "us-west-1"
},
"polly": {
"region": "us-west-1",
"signatureVersion": "v4",
"apiVersion": "2016-06-10"
},
"sayAgain": {
"Bucket": "say-again.sc-voice"
},
"region": "us-west-1",
"secretAccessKey": "########################################",
"accessKeyId": "####################"
}
aws configure
npm start
Open up localhost in your local browser and you will see Voice. When you are done with voice, type CTRL-C in the terminal.
npm run test
Unit tests take about 2 minutes. The unit tests require AWS Polly.
To execute a single unit/test, simply insert the text TESTTEST
into the it("...")
title argument. Then run npm run test:test
,
which selectively tests such unit tests whenever a source file changes.
This makes quick work of debugging or implementing a feature.
- Some tests validate online APIs and may fail due to timeouts
or
EAI_AGAIN
responses. Re-run tests and they should pass. - Some tests validate online content which may change. For example, the number of search results may change slightly. Update the unit tests accordingly and re-run tests.
Command line script | Description |
---|---|
npm run test |
Run service unit tests (about 2 minutes). |
npm run serve |
Compile and reload SC-Voice Vue for development at http://localhost:8080 |
npm run build |
Create production Vue build in dist folder |
npm run lint |
Run esLint to check *.js and *.vue files ` |
- src contains Javascript source code
- test contains Javascript unit tests
- scripts contains miscellaneous scripts
- local contains local content not archived in git
- public Vue/Vuetify public HTML assets
- words contains language lexicons for search and speech.