summaryrefslogtreecommitdiff
path: root/internal/audio
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-01 21:04:24 +0300
committerPaul Buetow <paul@buetow.org>2026-04-01 21:04:24 +0300
commit7e1ab60bcff42d5e15aafc807781a6b3077b45f5 (patch)
tree0deb0845ef89773b0ca3ed6f8fd07924ace6c79a /internal/audio
parent7e84b912c56b65c070b2bbd6b0284505ba579338 (diff)
Fix Gemini audio provider defaults
Diffstat (limited to 'internal/audio')
-rw-r--r--internal/audio/gemini_provider.go2
-rw-r--r--internal/audio/provider.go9
-rw-r--r--internal/audio/provider_test.go13
3 files changed, 13 insertions, 11 deletions
diff --git a/internal/audio/gemini_provider.go b/internal/audio/gemini_provider.go
index 9900005..8d0c517 100644
--- a/internal/audio/gemini_provider.go
+++ b/internal/audio/gemini_provider.go
@@ -14,7 +14,7 @@ import (
)
const (
- defaultGeminiTTSModel = "gemini-2.5-flash-preview-tts"
+ defaultGeminiTTSModel = "gemini-2.5-flash"
geminiTTSLanguageCode = "bg"
geminiTTSChannels = 1
geminiTTSSampleRate = 24000
diff --git a/internal/audio/provider.go b/internal/audio/provider.go
index 334e709..d750f31 100644
--- a/internal/audio/provider.go
+++ b/internal/audio/provider.go
@@ -17,7 +17,7 @@ type Provider interface {
IsAvailable() error
}
-// Config holds common configuration for audio providers
+// Config holds common configuration for audio providers.
type Config struct {
Provider string // Provider name: "openai" or "gemini"
OutputDir string // Directory for output files
@@ -32,7 +32,7 @@ type Config struct {
// Gemini-specific settings
GoogleAPIKey string
- GeminiTTSModel string // "gemini-2.5-flash-preview-tts"
+ GeminiTTSModel string // "gemini-2.5-flash"
GeminiVoice string // One of GeminiVoices, or empty for the model default.
GeminiSpeed float64 // Prompt hint for desired speech speed
}
@@ -40,7 +40,7 @@ type Config struct {
// DefaultConfig returns default configuration
func DefaultProviderConfig() *Config {
return &Config{
- Provider: "openai",
+ Provider: "gemini",
OutputDir: "./",
OutputFormat: "mp3",
OpenAIModel: "gpt-4o-mini-tts", // New model with voice instructions support
@@ -48,7 +48,7 @@ func DefaultProviderConfig() *Config {
OpenAISpeed: 1.0,
// OpenAISpeed: 0.98, // Default speed for clarity
OpenAIInstruction: "You are speaking Bulgarian language (български език). Pronounce the Bulgarian text with authentic Bulgarian phonetics, not Russian. Speak slowly and clearly for language learners.",
- GeminiTTSModel: "gemini-2.5-flash-preview-tts",
+ GeminiTTSModel: "gemini-2.5-flash",
GeminiSpeed: 1.0,
}
}
@@ -70,7 +70,6 @@ func NewProvider(config *Config) (Provider, error) {
return nil, fmt.Errorf("Google API key is required")
}
return NewGeminiProvider(config)
-
default:
return nil, fmt.Errorf("unknown audio provider: %s", config.Provider)
}
diff --git a/internal/audio/provider_test.go b/internal/audio/provider_test.go
index 4c8d911..0b04d20 100644
--- a/internal/audio/provider_test.go
+++ b/internal/audio/provider_test.go
@@ -30,8 +30,8 @@ func (m *mockProvider) IsAvailable() error {
func TestDefaultProviderConfig(t *testing.T) {
config := DefaultProviderConfig()
- if config.Provider != "openai" {
- t.Errorf("Expected provider 'openai', got '%s'", config.Provider)
+ if config.Provider != "gemini" {
+ t.Errorf("Expected provider 'gemini', got '%s'", config.Provider)
}
if config.OutputFormat != "mp3" {
@@ -50,10 +50,13 @@ func TestDefaultProviderConfig(t *testing.T) {
t.Errorf("Expected OpenAI speed 1.0, got %f", config.OpenAISpeed)
}
- if config.GeminiTTSModel != "gemini-2.5-flash-preview-tts" {
- t.Errorf("Expected Gemini TTS model 'gemini-2.5-flash-preview-tts', got '%s'", config.GeminiTTSModel)
+ if config.GeminiTTSModel != "gemini-2.5-flash" {
+ t.Errorf("Expected Gemini TTS model 'gemini-2.5-flash', got '%s'", config.GeminiTTSModel)
}
+ if config.GeminiSpeed != 1.0 {
+ t.Errorf("Expected Gemini speed 1.0, got %f", config.GeminiSpeed)
+ }
}
func TestNewProvider(t *testing.T) {
@@ -68,7 +71,7 @@ func TestNewProvider(t *testing.T) {
name: "nil config uses defaults",
config: nil,
wantErr: true,
- errMsg: "OpenAI API key is required",
+ errMsg: "Google API key is required",
},
{
name: "openai provider without key",