Skip to content

Commit

Permalink
feat: add common version mange
Browse files Browse the repository at this point in the history
  • Loading branch information
cubxxw committed Dec 25, 2024
1 parent 333071c commit cb5c810
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 18 deletions.
2 changes: 1 addition & 1 deletion configs/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ assemblyai:
api_key: "" # 你的 AssemblyAI API Key
model: "best" # 选用 "best" 或 "nano"
language_detection: true
language_confidence_threshold: 0
language_confidence_threshold: 0.8
default_language_code: "en"
language_code: ""
# 要禁用标点符号和文本格式,请在转录配置中将Punctuate和FormatText设置为false
Expand Down
32 changes: 15 additions & 17 deletions internal/stt/assemblyai/assemblyai.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,26 +45,11 @@ func (s *STT) Recognize(audioData []byte, audioURL string) (string, error) {
func (s *STT) transcribeFromURL(audioURL string) (string, error) {
ctx := context.Background()

// 第一次尝试使用语言检测
// 第一次尝试��使用语言检测
params := s.buildParams()
transcript, err := s.client.Transcripts.TranscribeFromURL(ctx, audioURL, params)
if err != nil {
// 检查是否是语言置信度错误
if s.isLanguageConfidenceError(err) && s.cfg.AssemblyAI.DefaultLanguageCode != "" {
// 使用默认语言重试
logger.Infof("语言置信度低于阈值 %.2f,使用默认语言 %s 重试",
s.cfg.AssemblyAI.LanguageConfidenceThreshold,
s.cfg.AssemblyAI.DefaultLanguageCode)

// 构建新的参数,使用默认语言
params = s.buildParamsWithDefaultLanguage()
transcript, err = s.client.Transcripts.TranscribeFromURL(ctx, audioURL, params)
if err != nil {
return "", fmt.Errorf("使用默认语言重试失败: %v", err)
}
} else {
return "", fmt.Errorf("转录请求失败: %v", err)
}
return "", fmt.Errorf("转录请求失败: %v", err)
}

// 使用指数退避策略,轮询转录状态
Expand All @@ -82,8 +67,21 @@ func (s *STT) transcribeFromURL(audioURL string) (string, error) {
if err != nil {
return "", fmt.Errorf("获取转录结果失败: %v", err)
}

// 检查错误状态
if transcript.Status == "error" {
if transcript.Error != nil {
// 在这里检查语言置信度错误
if s.isLanguageConfidenceError(err) && s.cfg.AssemblyAI.DefaultLanguageCode != "" {
// 使用默认语言重试
logger.Infof("语言置信度低于阈值 %.2f,使用默认语言 %s 重试",
s.cfg.AssemblyAI.LanguageConfidenceThreshold,
s.cfg.AssemblyAI.DefaultLanguageCode)

// 构建新的参数,使用默认语言
params = s.buildParamsWithDefaultLanguage()
return s.transcribeFromURL(audioURL) // 递归调用,使用新参数重试
}
return "", fmt.Errorf("转录出错: %s", *transcript.Error)
}
return "", fmt.Errorf("转录出错, 未返回具体错误信息")
Expand Down

0 comments on commit cb5c810

Please sign in to comment.