语音回答断句

📅 发布时间:2026/7/15 7:46:12 👁️ 浏览次数:
语音回答断句
int32 IsTargetSymbol(TCHAR C) { if (FChar::IsWhitespace(C)) return 2; // ---- 空白 ---- if (C \t){ return 2; } // ---- 特殊Unicode符号 ----// “ ” if (C 0x201C || C 0x201D){ return 2; } if (C 0x2026)//省略号 return 2; if (C 0x201C || C 0x201D) { return 2;//双引号 } switch (C) { case -: // 减号 / 连字符 case #: // 减号 / 连字符 case *: // 星号 case : // 空格 case 0x3001: // dunhao return 2; case 0xFF0C: // ,douhao case 0xFF1A:// : maohao return 1; default: return 0; } } bool IsTargetPunctuation(TCHAR C) { if (C \n || C \r) { return true; } switch (C) { case 0x3002: // .juhao case 0xFF1B: // : fenhao case 0xFF1F: // ? wenhao case 0xFF01: // !gantanhao return true; default: return false; } }bool bEndOfSentence false; bool is_fuhao false; for (int32 i 0; i Content.Len(); i) { TCHAR C Content[i]; if (IsTargetPunctuation(C)) { bEndOfSentence true; is_fuhao true; UE_LOG(LogTemp, Log, TEXT([duan_ju] %d %s), Sequence, *Content); break; } int32 res IsTargetSymbol(C); if (res0) { is_fuhao true; int32 CharCount AccumulatedText.Len(); if (CharCount 4 res1) { bEndOfSentence true; } continue; } else { AccumulatedText C; } } if (bEndOfSentence) { FString FinalText AccumulatedText; FinalText.TrimStartAndEndInline(); UE_LOG(LogTemp, Log, TEXT(text1 ReceWeb: %s), *FinalText); if (OnMessageCallback.IsBound()) { OnMessageCallback.Execute(FinalText); } AccumulatedText.Empty(); }