From 00a4c9c25a7402c3fca13076dd706020ba6c4171 Mon Sep 17 00:00:00 2001 From: intelligence Date: Sat, 29 Aug 2026 14:04:33 +0200 Subject: [PATCH] Feat: clean model name. --- src/main.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 2f5e88e..88cb135 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -333,6 +333,18 @@ size_t curl_write(char* buffer, size_t size, size_t nmemb, void* data) { return size * nmemb; } +std::string clean_transcript(std::string transcript) { + // Qwen3-ASR prefixes transcripts with the detected language and this marker. + constexpr const char* kLanguagePrefix = "language "; + constexpr const char* kTextMarker = ""; + if (transcript.compare(0, std::strlen(kLanguagePrefix), kLanguagePrefix) != 0) { + return transcript; + } + const size_t marker = transcript.find(kTextMarker, std::strlen(kLanguagePrefix)); + if (marker == std::string::npos) return transcript; + return transcript.substr(marker + std::strlen(kTextMarker)); +} + bool transcription_request(const std::string& url, const std::string& key, const std::string& model, const std::string& path, const std::string& prompt, @@ -402,7 +414,7 @@ bool transcription_request(const std::string& url, const std::string& key, g_object_unref(parser); return false; } - *transcript = json_object_get_string_member(object, "text"); + *transcript = clean_transcript(json_object_get_string_member(object, "text")); g_object_unref(parser); return true; }