Skip to main content

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.

See Also​