# 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

```go
import (
    "context"
    "fmt"
    "log"
    "os"

    "github.com/digitallysavvy/go-ai/pkg/ai"
    "github.com/digitallysavvy/go-ai/pkg/providers/lmnt"
)
```

```go
provider := lmnt.New(lmnt.Config{
    APIKey: os.Getenv("LMNT_API_KEY"),
})

model, err := provider.SpeechModel("default")
if err != nil {
    log.Fatal(err)
}
```

## Generate Speech

```go
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](https://docs.lmnt.com/) for the complete voice list.

## See Also

- [API Reference: GenerateSpeech](https://goaisdk.com/docs/reference/ai/generate-speech.md)
- [Speech Generation Guide](https://goaisdk.com/docs/ai-sdk-core/speech.md)
- [LMNT Documentation](https://docs.lmnt.com/)
