Introduction
Post-call transcription and summary is a powerful feature provided by VideoSDK that allows users to generate detailed transcriptions and summaries of recorded meetings after they have concluded. This feature is particularly beneficial for capturing and documenting important information discussed during meetings, ensuring that nothing is missed and that there is a comprehensive record of the conversation.
How Post-Call Transcription Works?
Post-call transcription involves processing the recorded audio or video content of a meeting to produce a textual representation of the conversation. Here’s a step-by-step breakdown of how it works:
- Recording the Meeting: During the meeting, the audio and video are recorded. This can include everything that was said and any shared content, such as presentations or screen shares.
- Uploading the Recording: Once the meeting is over, the recorded file is uploaded to the VideoSDK platform. This can be done automatically or manually, depending on the configuration.
- Transcription Processing: The uploaded recording is then processed by VideoSDK’s transcription engine. This engine uses advanced speech recognition technology to convert spoken words into written text.
- Retrieving the Transcription: After the transcription process is complete, the textual representation of the meeting is made available. This text can be accessed via the VideoSDK API and used in various applications.
Benefits of Post-Call Transcription
- Accurate Documentation: Provides a precise record of what was discussed, which is invaluable for meeting minutes, legal documentation, and reference.
- Enhanced Accessibility: Makes content accessible to those who may have missed the meeting or have hearing impairments.
- Easy Review and Analysis: Enables quick review of key points and decisions made during the meeting without having to re-watch the entire recording.
Let's Get started
VideoSDK empowers you to seamlessly integrate the video calling feature into your Flutter application within minutes.
In this quickstart, you'll explore the group calling feature of VideoSDK. Follow the step-by-step guide to integrate it within your application.
Prerequisites
Before proceeding, ensure your development environment meets the following requirements:
- Video SDK Developer Account: If you don't have one, you can create it by following the instructions on the Video SDK Dashboard.
- Basic Understanding of Flutter: Familiarity with Flutter development is necessary.
- Flutter Video SDK: Ensure you have the Flutter Video SDK installed.
- Flutter Installation: Flutter should be installed on your device.
- One should have a VideoSDK account to generate tokens. Visit the VideoSDK dashboard to generate a token.
Getting Started with the Code!
Follow the steps to create the environment necessary to add video calls to your app. You can also find the code sample for quickstart here.
Create a new Flutter project.
Create a new Flutter App using the below command.
Install Video SDK
Install the VideoSDK using the below-mentioned flutter command. Make sure you are in your Flutter app directory before you run this command.
//run this command in terminal to add videoSDK
flutter pub add videosdk
//run this command to add http library to perform network call to generate roomId
flutter pub add http
App Structure
The app widget will contain JoinScreen
and MeetingScreen
widget. MeetingScreen
will have MeetingControls
and ParticipantTile
widget.
Configure Project
For Android
- Update the
/android/app/src/main/AndroidManifest.xml
for the permissions we will be using to implement the audio and video features.
- Also, you will need to set your build settings to Java 8 because the official WebRTC jar now uses static methods in
EglBase
interface. Just add this to your app-level/android/app/build.gradle
.
android {
//...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
- If necessary, in the same
build.gradle
you will need to increaseminSdkVersion
ofdefaultConfig
up to23
(currently, the default Flutter generator is set it to16
). - If necessary, in the same
build.gradle
you will need to increasecompileSdkVersion
andtargetSdkVersion
up to31
(currently, the default Flutter generator is set it to30
).
For iOS
- Add the following entries which allow your app to access the camera and microphone of your
/ios/Runner/Info.plist
file :
- Uncomment the following line to define a global platform for your project in
/ios/Podfile
:
For MacOS
- Add the following entries to your
/macos/Runner/Info.plist
file which allow your app to access the camera and microphone.
- Add the following entries to your
/macos/Runner/DebugProfile.entitlements
file which allows your app to access the camera, and microphone and open outgoing network connections.
- Add the following entries to your
/macos/Runner/Release.entitlements
file which allows your app to access the camera, and microphone and open outgoing network connections.
Step 1: Get started with api_call.dart
Before jumping to anything else, you will write a function to generate a unique meetingId. You will require an auth token, you can generate it using either by using videosdk-rtc-api-server-examples or generate it from the Video SDK Dashboard for development.
Step 2: Creating the JoinScreen
Let's create join_screen.dart
file in lib
directory and create JoinScreen StatelessWidget
.
The JoinScreen will consist of:
- Create a Meeting Button - This button will create a new meeting for you.
- Meeting ID TextField - This text field will contain the meeting ID, you want to join.
- Join Meeting Button - This button will join the meeting, which you have provided.
- Update the home screen of the app in the
main.dart
Output
Step 3: Creating the MeetingControls
Let's create meeting_controls.dart
file and create MeetingControls StatelessWidget
.
The MeetingControls will consist of:
- Leave Button - This button will leave the meeting.
- Toggle Mic Button - This button will unmute or mute the mic.
- Toggle Camera Button - This button will enable or disable the camera.
MeetingControls will accept 3 functions in the constructor.
- onLeaveButtonPressed - invoked when the Leave button is pressed.
- onToggleMicButtonPressed - invoked when the Toggle Mic button is pressed.
- onToggleCameraButtonPressed - invoked when the Toggle Camera button pressed
- onStartRecordingPressed - invoked when the Start Recording button is pressed.
- onStopRecordingPressed - invoked when the Stop Recording button is pressed.
Step 4: Creating ParticipantTile
Let's create participant_tile.dart
file and create ParticipantTile StatefulWidget
.
The ParticipantTile will consist of:
- RTCVideoView - This will show participant's video stream.
ParticipantTile will accept Participant
in constructor
- participant - participant of the meeting.
Step 5: Creating the MeetingScreen & Configuring Transcription
In this step, we create meeting_screen.dart
file and create MeetingScreen StatefulWidget
. We set up the configuration for post-call transcription and summary generation. We define the webhook URL where the webhooks will be received.
We have introduced the setupRoomEventListener()
function, which ensures that the post-transcription service automatically starts when recording the function startRecording
begins and stops when stopRecording
is called. This enhancement streamlines the transcription process, providing seamless integration with our recording feature.
Run and Test
Type flutter run
to start your app
The app is all set to test. Make sure to update the token
in api_call.dart
Your app should look like this after the implementation.
Output
Fetching the Transcription from the Dashboard
Once the transcription is ready, you can fetch it from the VideoSDK dashboard. The dashboard provides a user-friendly interface where you can view, download, and manage your Transcriptions & Summary.
If you get webrtc/webrtc.h file not found
error at a runtime in ios then check solution here.
Conclusion
Integrating post-call transcription and summary features into your React application using VideoSDK provides significant advantages for capturing and documenting meeting content. This guide has meticulously detailed the steps required to set up and implement these features, ensuring that every conversation during a meeting is accurately transcribed and easily accessible for future reference.