Skip to content

Commit

Permalink
Add timestamps to TranscriptionSegment. (livekit#577)
Browse files Browse the repository at this point in the history
  • Loading branch information
cloudwebrtc authored and laogui593 committed Aug 31, 2024
1 parent 0929ca9 commit c082620
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 42 deletions.
6 changes: 3 additions & 3 deletions example/android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#Fri Jun 23 08:50:38 CEST 2017
#Sat Aug 31 07:36:54 CST 2024
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
zipStoreBase=GRADLE_USER_HOME
26 changes: 18 additions & 8 deletions lib/src/core/room.dart
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ class Room extends DisposableChangeNotifier with EventsEmittable<RoomEvent> {
RegionUrlProvider? _regionUrlProvider;
String? _regionUrl;

// Agents
final Map<String, DateTime> _transcriptionReceivedTimes = {};

Room({
@Deprecated('deprecated, please use connectOptions in room.connect()')
ConnectOptions connectOptions = const ConnectOptions(),
Expand Down Expand Up @@ -790,24 +793,31 @@ class Room extends DisposableChangeNotifier with EventsEmittable<RoomEvent> {
void _onTranscriptionEvent(EngineTranscriptionReceivedEvent event) {
final participant = getParticipantByIdentity(
event.transcription.transcribedParticipantIdentity);
if (participant == null) {
if (participant == null || event.transcription.segments.isEmpty) {
return;
}

final publication =
participant.getTrackPublicationBySid(event.transcription.trackId);

var segments = event.transcription.segments.map((e) {
var segments = event.transcription.segments.map((segment) {
return TranscriptionSegment(
text: e.text,
id: e.id,
startTime: DateTime.fromMillisecondsSinceEpoch(e.startTime.toInt()),
endTime: DateTime.fromMillisecondsSinceEpoch(e.endTime.toInt()),
isFinal: e.final_5,
language: e.language,
text: segment.text,
id: segment.id,
firstReceivedTime:
_transcriptionReceivedTimes[segment.id] ?? DateTime.now(),
lastReceivedTime: DateTime.now(),
isFinal: segment.final_5,
language: segment.language,
);
}).toList();

for (var segment in segments) {
segment.isFinal
? _transcriptionReceivedTimes.remove(segment.id)
: _transcriptionReceivedTimes[segment.id] = DateTime.now();
}

final transcription = TranscriptionEvent(
participant: participant,
publication: publication,
Expand Down
8 changes: 4 additions & 4 deletions lib/src/events.dart
Original file line number Diff line number Diff line change
Expand Up @@ -462,15 +462,15 @@ class ParticipantPermissionsUpdatedEvent with RoomEvent, ParticipantEvent {
class TranscriptionSegment {
final String id;
final String text;
final DateTime startTime;
final DateTime endTime;
final DateTime firstReceivedTime;
final DateTime lastReceivedTime;
final bool isFinal;
final String language;
const TranscriptionSegment({
required this.id,
required this.text,
required this.startTime,
required this.endTime,
required this.firstReceivedTime,
required this.lastReceivedTime,
required this.isFinal,
required this.language,
});
Expand Down
46 changes: 19 additions & 27 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -141,10 +141,10 @@ packages:
dependency: "direct main"
description:
name: dart_webrtc
sha256: dc97a87e8d8c168fc5401ef18eaa0e06e1ac8fc099812de27a002860d021e227
sha256: ac7ef077084b3e54004716f1d736fcd839e1b60bc3f21f4122a35a9bb5ca2e47
url: "https://pub.dev"
source: hosted
version: "1.4.7"
version: "1.4.8"
dbus:
dependency: transitive
description:
Expand Down Expand Up @@ -206,14 +206,6 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04
url: "https://pub.dev"
source: hosted
version: "2.0.3"
flutter_test:
dependency: "direct dev"
description: flutter
Expand All @@ -228,10 +220,10 @@ packages:
dependency: "direct main"
description:
name: flutter_webrtc
sha256: "994abcb8d919c03302e05b9402e7578562548ac92b65d65d498889b2765a034e"
sha256: "67faa07cf49392b50b1aa14590a83caa64d2109345fabd29899dcd8da8538348"
url: "https://pub.dev"
source: hosted
version: "0.11.3"
version: "0.11.6+hotfix.1"
glob:
dependency: transitive
description:
Expand Down Expand Up @@ -276,18 +268,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev"
source: hosted
version: "10.0.4"
version: "10.0.5"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev"
source: hosted
version: "3.0.3"
version: "3.0.5"
leak_tracker_testing:
dependency: transitive
description:
Expand All @@ -297,13 +289,13 @@ packages:
source: hosted
version: "3.0.1"
lints:
dependency: transitive
dependency: "direct dev"
description:
name: lints
sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
version: "4.0.0"
logging:
dependency: "direct main"
description:
Expand All @@ -324,18 +316,18 @@ packages:
dependency: transitive
description:
name: material_color_utilities
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev"
source: hosted
version: "0.8.0"
version: "0.11.1"
meta:
dependency: "direct main"
description:
name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev"
source: hosted
version: "1.12.0"
version: "1.15.0"
mockito:
dependency: "direct dev"
description:
Expand Down Expand Up @@ -545,10 +537,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev"
source: hosted
version: "0.7.0"
version: "0.7.2"
tint:
dependency: transitive
description:
Expand Down Expand Up @@ -585,10 +577,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.dev"
source: hosted
version: "14.2.1"
version: "14.2.5"
watcher:
dependency: transitive
description:
Expand Down

0 comments on commit c082620

Please sign in to comment.