LMNT Provider
LMNT provides text-to-speech synthesis with voice selection and speed control.
The current Go provider implements the shared provider.SpeechModel interface
and is used through ai.GenerateSpeech.
Setup
import (
"context"
"fmt"
"log"
"os"
"github.com/digitallysavvy/go-ai/pkg/ai"
"github.com/digitallysavvy/go-ai/pkg/providers/lmnt"
)
provider := lmnt.New(lmnt.Config{
APIKey: os.Getenv("LMNT_API_KEY"),
})
model, err := provider.SpeechModel("default")
if err != nil {
log.Fatal(err)
}
Generate Speech
speed := 1.2
result, err := ai.GenerateSpeech(context.Background(), ai.GenerateSpeechOptions{
Model: model,
Text: "Welcome to the Go AI SDK.",
Voice: "aurora",
Speed: &speed,
})
if err != nil {
log.Fatal(err)
}
if err := os.WriteFile("output.mp3", result.Audio.Data, 0644); err != nil {
log.Fatal(err)
}
fmt.Printf("Generated %d bytes as %s\n", len(result.Audio.Data), result.Audio.MediaType)
Voices
Common voices include aurora, lily, harper, and sage. Voice
defaults to "ava" when left empty. Check the
LMNT documentation for the complete voice list.