Skip to content

sc-voice/scv-server-DEPRECATED-

Repository files navigation

scv-server

NodeJS server for voice.suttacentral.net

Installation

Prerequisites

  • Linux Debian 10 or Ubuntu 20.04
  • Nodejs 16.x
  • Server credentials for AWS Polly account

Local installation

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

Linode installation

./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.

Configure Amazon AWS Polly

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
Launch localhost server
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.

Unit tests

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.

Test failures
  • 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.

Scripts

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 `

Other

Directory structure

  • 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.