wire whisper-cpp into transcriber factory
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/leonardotrapani/hyprvoice/internal/models/whisper"
|
||||
"github.com/leonardotrapani/hyprvoice/internal/provider"
|
||||
"github.com/leonardotrapani/hyprvoice/internal/recording"
|
||||
)
|
||||
@@ -106,6 +107,12 @@ func NewTranscriber(config Config) (Transcriber, error) {
|
||||
adapter = NewOpenAIAdapter(model.Endpoint, config.APIKey, model.ID, config.Language, config.Keywords, registryProvider)
|
||||
case "elevenlabs":
|
||||
adapter = NewElevenLabsAdapter(model.Endpoint, config.APIKey, model.ID, config.Language)
|
||||
case "whisper-cpp":
|
||||
modelPath := whisper.GetModelPath(config.Model)
|
||||
if modelPath == "" {
|
||||
return nil, fmt.Errorf("unknown whisper model: %s", config.Model)
|
||||
}
|
||||
adapter = NewWhisperCppAdapter(modelPath, config.Language, config.Threads)
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported adapter type: %s", model.AdapterType)
|
||||
}
|
||||
|
||||
@@ -174,6 +174,35 @@ func TestNewTranscriber(t *testing.T) {
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "valid whisper-cpp config creates adapter",
|
||||
config: Config{
|
||||
Provider: "whisper-cpp",
|
||||
Language: "en",
|
||||
Model: "base.en",
|
||||
Threads: 4,
|
||||
},
|
||||
wantErr: false, // creates adapter even if model file doesn't exist (runtime check)
|
||||
},
|
||||
{
|
||||
name: "whisper-cpp without api key is valid",
|
||||
config: Config{
|
||||
Provider: "whisper-cpp",
|
||||
APIKey: "", // no api key required
|
||||
Language: "en",
|
||||
Model: "tiny.en",
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "whisper-cpp with unknown model returns error",
|
||||
config: Config{
|
||||
Provider: "whisper-cpp",
|
||||
Language: "en",
|
||||
Model: "nonexistent-whisper-model",
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
|
||||
Reference in New Issue
Block a user