|
|
|
@ -149,11 +149,61 @@ class UsageStatsService extends GetxService { |
|
|
|
_saveMeetingDaily(daily); |
|
|
|
Logger.i('MeetingASRrecord', |
|
|
|
'会议ASR完成: id=${id}, meetingId=${old.meetingId}, transcriptBytes=${transcriptBytes}, audioSeconds=${old.audioSeconds}, date=${dateKey}'); |
|
|
|
try { |
|
|
|
_reportMeetingUsageToServer( |
|
|
|
audioSeconds: old.audioSeconds, |
|
|
|
audioBytes: old.fileSizeBytes, |
|
|
|
language: old.language, |
|
|
|
transcriptBytes: transcriptBytes, |
|
|
|
); |
|
|
|
} catch (e) { |
|
|
|
Logger.error('会议用量上报(完成)失败: $e'); |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// 上报会议用量到服务器 |
|
|
|
/// [audioSeconds] 音频时长(秒) |
|
|
|
/// [audioBytes] 音频文件大小(字节) |
|
|
|
/// [language] 识别语言 |
|
|
|
/// [transcriptBytes] 转写结果文本字节数(可选) |
|
|
|
/// 该方法用于将会议语音识别(ASR)的用量数据上报到服务器。 |
|
|
|
/// 它会根据提供的参数构建一个包含会议用量类型、音频时长、音频文件大小、 |
|
|
|
/// 识别语言以及可选的转写结果文本字节数的参数对象。 |
|
|
|
/// 然后,它会调用API接口将该参数对象发送到服务器进行处理。 |
|
|
|
/// 如果上报成功,服务器会返回一个响应,该方法会根据响应更新本地的用户积分(非总积分)。 |
|
|
|
Future<void> _reportMeetingUsageToServer({ |
|
|
|
required int audioSeconds, |
|
|
|
required int audioBytes, |
|
|
|
required String language, |
|
|
|
int? transcriptBytes, |
|
|
|
}) async { |
|
|
|
try { |
|
|
|
final params = { |
|
|
|
'usagetype': UsageType.Meet.toInt, |
|
|
|
'usages': { |
|
|
|
'MEETING_ASR_AUDIO_SECONDS': audioSeconds, |
|
|
|
// 'MEETING_ASR_AUDIO_BYTES': audioBytes, |
|
|
|
// if (transcriptBytes != null) |
|
|
|
// 'MEETING_ASR_TRANSCRIPT_BYTES': transcriptBytes, |
|
|
|
// 'MEETING_ASR_LANGUAGE_$language': 1, |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
Logger.info('lxm---MEET用量上报参数: $params'); |
|
|
|
|
|
|
|
final response = await Api.usagesResPoints(params); |
|
|
|
|
|
|
|
Logger.info('lxm---MEET用量上报响应: $response'); |
|
|
|
|
|
|
|
_applyUsageResponse(response); |
|
|
|
} catch (e) { |
|
|
|
Logger.error('会议用量上报失败: $e'); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// 记录翻译API调用 |
|
|
|
void recordTranslationApiCall({ |
|
|
|
required String sourceText, |
|
|
|
@ -291,6 +341,13 @@ class UsageStatsService extends GetxService { |
|
|
|
} |
|
|
|
|
|
|
|
/// 上报ASR用量到服务器 |
|
|
|
/// [effectiveDurationSeconds] 有效语音时长(秒) |
|
|
|
/// [language] 识别语言 |
|
|
|
/// [mode] 翻译模式 |
|
|
|
/// 该方法用于将ASR(语音识别)的用量数据上报到服务器。 |
|
|
|
/// 它会根据提供的参数构建一个包含用量类型、有效语音时长、识别语言以及翻译模式的参数对象。 |
|
|
|
/// 然后,它会调用API接口将该参数对象发送到服务器进行处理。 |
|
|
|
/// 如果上报成功,服务器会返回一个响应,该方法会根据响应更新本地的用户积分(非总积分)。 |
|
|
|
Future<void> _reportAsrUsageToServer({ |
|
|
|
required int effectiveDurationSeconds, |
|
|
|
//required int totalDurationSeconds, |
|
|
|
@ -305,10 +362,10 @@ class UsageStatsService extends GetxService { |
|
|
|
//'TRANSLATION_ASR_TOTAL_SECONDS': totalDurationSeconds, |
|
|
|
'TRANSLATION_MODE_$mode': effectiveDurationSeconds, |
|
|
|
'TRANSLATION_ASR_LANGUAGE_$language': 1, |
|
|
|
'TRANSLATION_SOURCE_CHARACTERS': |
|
|
|
realtimeTranslationStats.value.sourceTextCharacters, |
|
|
|
'TRANSLATION_TARGET_CHARACTERS': |
|
|
|
realtimeTranslationStats.value.ttsTextCharacters, |
|
|
|
// 'TRANSLATION_SOURCE_CHARACTERS': |
|
|
|
// realtimeTranslationStats.value.sourceTextCharacters, |
|
|
|
// 'TRANSLATION_TARGET_CHARACTERS': |
|
|
|
// realtimeTranslationStats.value.ttsTextCharacters, |
|
|
|
}, |
|
|
|
}; |
|
|
|
|
|
|
|
|