From a6dbb02443e04de1b5536ef83dcd3846c580fb29 Mon Sep 17 00:00:00 2001 From: Yoshida Hiroshi Date: Thu, 19 Dec 2024 15:38:09 +0900 Subject: [PATCH] =?UTF-8?q?=E7=99=BA=E8=A9=B1=E6=99=82=E9=96=93=E3=81=AB?= =?UTF-8?q?=E3=82=88=E3=82=8B=E8=A9=95=E4=BE=A1=E3=81=A8=E4=BF=A1=E9=A0=BC?= =?UTF-8?q?=E3=82=B9=E3=82=B3=E3=82=A2=E3=81=AE=E8=A9=95=E4=BE=A1=E3=82=92?= =?UTF-8?q?=E5=88=86=E3=81=91=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- amazon_transcribe_handler.go | 46 ++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/amazon_transcribe_handler.go b/amazon_transcribe_handler.go index 06b04c8..03e5bf7 100644 --- a/amazon_transcribe_handler.go +++ b/amazon_transcribe_handler.go @@ -203,47 +203,41 @@ func buildMessage(config Config, alt transcribestreamingservice.Alternative, isP minimumTranscribedTime := config.MinimumTranscribedTime var message string - if minimumConfidenceScore > 0 { - if isPartial { - // IsPartial: true の場合は Transcript をそのまま使用する - if alt.Transcript != nil { - message = *alt.Transcript + items := alt.Items + + for _, item := range items { + // minimumTranscribedTime が設定されている場合のみ時間を評価する + if minimumTranscribedTime > 0 { + if (item.StartTime != nil) && (item.EndTime != nil) { + if (*item.EndTime - *item.StartTime) > 0 { + if (*item.EndTime - *item.StartTime) < minimumTranscribedTime { + // 発話時間が短い場合は次へ + continue + } + } } - } else { - items := alt.Items + } - for _, item := range items { + // minimumConfidenceScore が設定されている場合のみ信頼スコアを評価する + if minimumConfidenceScore > 0 { + // isPartial が false の場合のみ信頼スコアを評価する + if !isPartial { if item.Confidence != nil { if *item.Confidence < minimumConfidenceScore { // 信頼スコアが低い場合は次へ continue } } - - if (item.StartTime != nil) && (item.EndTime != nil) { - if (*item.EndTime - *item.StartTime) > 0 { - if (*item.EndTime - *item.StartTime) < minimumTranscribedTime { - // 発話時間が短い場合は次へ - continue - } - } - } - - message += *item.Content } } - } else { - // minimumConfidenceScore が設定されていない(0)場合は Transcript をそのまま使用する - if alt.Transcript != nil { - message = *alt.Transcript - } + + message += *item.Content } - // メッセージが空の場合は次へ + // 各評価の結果、メッセージが空の場合は次へ if message == "" { return message, false } return message, true - }