An open API service indexing awesome lists of open source software.

https://github.com/ranman/connect-audio-utils


https://github.com/ranman/connect-audio-utils

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Connect Audio Utils

This is a set of lambda and ffmpeg powered tools for working with audio from Amazon Connect

## Tools

### Connect Audio Utils Layer

This layer includes:

* statically compiled ffmpeg
* boto3
* [pydub](https://github.com/jiaaro/pydub)
* requests
* [ffmpeg-python](https://github.com/kkroening/ffmpeg-python)

### Overlay Audio

This function overlays two audio tracks and accepts input in the following form:

```json
{
"sources": [{
"Bucket": "",
"Key": ""
},
{
"Bucket": "",
"Key": ""
}],
"target": {
"Bucket": "",
"Key": ""
}
}
```

### Redact Audio

This function mutes/removes sections of audio from a track based no timestamps and accepts input in the following form:

```json
{
"source": {
"Bucket": "",
"Key": ""
},
"target": {
"Bucket": "",
"Key": ""
},
"timestamps": [
{"begin": "1000", "end": "2000"},
{"begin": "5000", "end": "8000"}
]
}
```

## Build Instructions

1. Install CDK (npm i -g aws-cdk)
1. First build the layer:

```bash
cd resources/connect-audio-utils-layer
mkdir bin/
curl -s https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz | tar -xJC bin --strip=1 'ffmpeg-*-amd64-static/ffmpeg'
docker run --rm -v $(pwd):/foo -w /foo lambci/lambda:build-python3.8 pip3 install -r requirements.txt -t python
zip -r9 layer.zip bin python -x "*.pyc"
```

1. Change back to root directory of project `cd ../..`
1. Install deps: `npm install`
1. Next run `npm run build`
1. Deploy with run `cdk deploy` (you may need to run `cdk bootstrap` first)

## Useful commands

* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests
* `cdk deploy` deploy this stack to your default AWS account/region
* `cdk diff` compare deployed stack with current state
* `cdk synth` emits the synthesized CloudFormation template