This application can record and then summarize meetings automatically. An advice is added at the end of the summary, which can then (optionally) be sent to a Slack channel of your choosing.
Created in connection with the 2023 Hackdays.
Screenshot
Getting started
- Install the required dependencies (portaudio, ffmpeg and Go 1.16 or later).
- Configure your Slack web hook URL either as the
SLACK_EBHOOK_URL
environment variable, or asslack_webhook = "YOUR SLACK WEBHOOK URL GOES HERE"
in~/.config/concluder.toml
. - Configure your OpenAI API Key either as the
OPENAI_API_KEY
orOPENAI_KEY
environment variable, or asopenai_api_key = "YOUR KEY GOES HERE"
in~/.config/concluder.toml
. - Make sure that you have a working microphone.
Clone the repository and run the server (which includes a frontend):
git clone https://github.com/schibsted/meeting-concluder.git
cd meeting-concluder/cmd/backend/backend
go build
./backend
Then visit http://localhost:3000
.
A double clap can be used to stop the recording.
Note that the current maximum audio file size for the transcription API is 25 MiB, which is not a lot! Pull requests for adding batching are welcome.
Project contents
- A Go package named
concluder
. - A web server with REST endpoints and a web frontend.
- Several command line utilities, which were used for testing.
Utilities
These utilities were used for testing the functionality of the concluder
package.
cmd/rec/rec
was used for recordingcmd/rec/output.wav
which contains is a recording of me sayingThis meeting is about creating a llama farm.
.cmd/wav2mp4/wav2mp4
was used for convertingcmd/rec/output.wav
tocmd/wav2mp4/output.mp4
.cmd/audio2text/audio2text
was used for convertingcmd/wav2mp4/output.wav
tocmd/audio2text/output.txt
.cmd/conclude/conclude
was used for convertingcmd/audio2text/output.txt
tocmd/conclude/output.txt
.cmd/slackpost/slackpost
was used for postingcmd/conclude/output.txt
to#nmp-meeting-concluder
on Slack.cmd/meetingconcluder/meetingconcluder
records, converts, transcribes, concludes and posts to Slack.cmd/play/play
can play wav files, buy requires theafplay
command.
General info
- Author: Alexander F. Rødseth
- License: Apache 2
- Version: 1.0.2
The contents of the NOTICE file
(Required, per company policy).
################################################################################
# #
# Meeting Concluder #
# #
# Copyright 2023 Schibsted #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, #
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# #
# See the License for the specific language governing permissions and #
# limitations under the License. #
# #
################################################################################
Configure Renovate
Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.
🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.
Configuration Summary
Based on the default config's presets, Renovate will:
fix
for dependencies andchore
for all others if semantic commits are in use.node_modules
,bower_components
,vendor
and various test/tests directories.🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the
renovate.json
in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.What to Expect
It looks like your repository dependencies are already up-to-date and no Pull Requests will be necessary right away.
❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.
This PR has been generated by Mend Renovate. View repository job log here.