Skip to content

Speech to text nodejs API

Alexis Morel edited this page Nov 19, 2019 · 6 revisions

This is the transcription api for the steno project. It communicates with Google's servers to achieve speech-to-text transcription.

Installation:

$ cd ./transciption_api
$ npm install

Execution:

For development purpose:

$ npm run start

For production:

$ npm run prod

Setup Https for localhost and Client Certificates:

$ cd ssl/

Certification Authority key and certificate:

$ openssl req -new -x509 -days 365 -config ca.cnf -keyout ca-key.pem -out ca-crt.pem

Server's key generation:

$ openssl genrsa -out server-key.pem 4096

Server's certification signature request:

$ openssl req -new -config server.cnf -key server-key.pem -out server-csr.pem

Server's certificate authorization:

$ openssl x509 -req -extfile server.cnf -days 365 -passin "pass:password" -in server-csr.pem -CA ca-crt.pem -CAkey ca-key.pem -CAcreateserial -out server-crt.pem

Client's key generation:

$ openssl genrsa -out client.key 4096

Client's certificate generation:

$ openssl req -new -config client.cnf -key client.key -out client.crt

Client's certificate approbation:

$ openssl x509 -req -extfile client.cnf -days 365 -passin "pass:password" -in client.crt -CA ca-crt.pem -CAkey ca-key.pem -CAcreateserial -out client.crt

Verify the client's certificate is all right:

$ openssl verify -CAfile ca-crt.pem client.crt

Finally put the client certificate and key in this folder : rendezvous/steno/ssl. If you want to put these somewhere else, you'll need to change to path to these files in the transcriptionConfig section of the steno.conf file.

Deployment:

1- Clone the repo on your server.

2- You can delete all files and folder except the transcription_api folder.

3- Edit the production .env file with the right settings. Based on .envTemplate file.

4- Finally you can use the transcription_api/scripts/deploy.sh script as exemple to deploy the server or do your own thing.

5- We deployed it on the same server then jitsi-meet so we used Nginx as reverse proxy. You can see an exemple of config file in transcription_api/scripts. If you want this setup, we suggest to install jitsi-meet first and then install the speech-to-text api.