Record audio from a meeting, then transcribe, conclude and send the conclusion and a piece of advice to Slack

  • By Schibsted
  • Last update: Apr 11, 2023
  • Comments: 1

Meeting Concluder Build status

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

screenshot of recording in progress

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 as slack_webhook = "YOUR SLACK WEBHOOK URL GOES HERE" in ~/.config/concluder.toml.
  • Configure your OpenAI API Key either as the OPENAI_API_KEY or OPENAI_KEY environment variable, or as openai_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 recording cmd/rec/output.wav which contains is a recording of me saying This meeting is about creating a llama farm..
  • cmd/wav2mp4/wav2mp4 was used for converting cmd/rec/output.wav to cmd/wav2mp4/output.mp4.
  • cmd/audio2text/audio2text was used for converting cmd/wav2mp4/output.wav to cmd/audio2text/output.txt.
  • cmd/conclude/conclude was used for converting cmd/audio2text/output.txt to cmd/conclude/output.txt.
  • cmd/slackpost/slackpost was used for posting cmd/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 the afplay 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.                                               #
#                                                                              #
################################################################################

Download

meeting-concluder.zip

Comments(1)

  • 1

    Configure Renovate

    Mend 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:

    • Start dependency updates only once this onboarding PR is merged
    • Enable Renovate Dependency Dashboard creation.
    • Use semantic commit type fix for dependencies and chore for all others if semantic commits are in use.
    • Ignore node_modules, bower_components, vendor and various test/tests directories.
    • Group known monorepo packages together.
    • Use curated list of recommended non-monorepo package groupings.
    • Apply crowd-sourced package replacement rules.
    • Apply crowd-sourced workarounds for known problems with packages.

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