2019-02-08 21:00:21 +08:00
|
|
|
# backend-transcription
|
|
|
|
|
2019-02-16 12:49:48 +08:00
|
|
|
Beep backend handling transcription of bites to text via Google Cloud.
|
|
|
|
|
|
|
|
## Quickstart
|
|
|
|
|
|
|
|
```
|
|
|
|
go build && ./backend-transcription
|
|
|
|
```
|
|
|
|
|
2019-02-18 23:44:14 +08:00
|
|
|
## Environment Variables
|
2019-02-16 12:49:48 +08:00
|
|
|
|
2019-02-18 23:44:14 +08:00
|
|
|
Supply environment variables by either exporting them or editing ```.env```.
|
2019-02-16 12:49:48 +08:00
|
|
|
|
2019-02-18 23:44:14 +08:00
|
|
|
| ENV | Description | Default |
|
2019-02-16 12:49:48 +08:00
|
|
|
| ---- | ----------- | ------- |
|
2019-02-18 23:44:14 +08:00
|
|
|
| LISTEN | Host and port number to listen on | :8080 |
|
|
|
|
| NATS | Host and port of nats | nats://localhost:4222 |
|
|
|
|
| API_KEY | Google Cloud API key | Something that works. Probably |
|
2019-02-16 12:49:48 +08:00
|
|
|
|
|
|
|
## API
|
|
|
|
|
|
|
|
## Scan Bites
|
|
|
|
|
|
|
|
```
|
|
|
|
GET /conversation/:key/scan
|
|
|
|
```
|
|
|
|
|
|
|
|
Get a list of transcription start times within a conversation key and specified timespan.
|
|
|
|
|
|
|
|
#### URL Params
|
|
|
|
|
|
|
|
| Name | Type | Description |
|
|
|
|
| ---- | ---- | ----------- |
|
|
|
|
| key | String | Audio transcription's bite's conversation's ID. |
|
|
|
|
|
|
|
|
#### Querystring
|
|
|
|
|
|
|
|
| Name | Type | Description |
|
|
|
|
| ---- | ---- | ----------- |
|
|
|
|
| from | Epoch timestamp | Time to start scanning from |
|
|
|
|
| to | Epoch timestamp | Time to scan to |
|
|
|
|
|
|
|
|
#### Success (200 OK)
|
|
|
|
|
|
|
|
```
|
|
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"previous": <Timestamp of transcription before <starts>>,
|
|
|
|
"starts": [Timestamp, Timestamp...],
|
|
|
|
"next": <Timestamp of transcription after <starts>>,
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Errors
|
|
|
|
|
|
|
|
| Code | Description |
|
|
|
|
| ---- | ----------- |
|
|
|
|
| 400 | Malformed input (from/to not timestamp, key not alphanumeric). |
|
|
|
|
| 500 | NATs or protobuf serialisation encountered errors. |
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
### Get Bite
|
|
|
|
|
|
|
|
```
|
|
|
|
GET /conversation/:key/start/:start
|
|
|
|
```
|
|
|
|
|
|
|
|
Get a specific ```transcription```.
|
|
|
|
|
|
|
|
#### URL Params
|
|
|
|
|
|
|
|
| Name | Type | Description |
|
|
|
|
| ---- | ---- | ----------- |
|
|
|
|
| key | String | Audio transcription's conversation's ID. |
|
|
|
|
| start | Epoch timestamp | Time the audio transcription starts. |
|
|
|
|
|
|
|
|
#### Success (200 OK)
|
|
|
|
|
|
|
|
Plaintext transcription
|
|
|
|
|
|
|
|
#### Errors
|
|
|
|
|
|
|
|
| Code | Description |
|
|
|
|
| ---- | ----------- |
|
|
|
|
| 400 | start is not an uint/key is not an alphanumeric string/specified bite could not be found |
|
|
|
|
| 500 | NATs or protobuf serialisation encountered errors. |
|