TranscriptionModel Interface
Interface that all speech-to-text transcription model implementations must satisfy.
Interface Definition
type TranscriptionModel interface {
// Metadata
SpecificationVersion() string
Provider() string
ModelID() string
// Transcription
DoTranscribe(ctx context.Context, opts *TranscriptionOptions) (*types.TranscriptionResult, error)
}
Methods
| Method | Parameters | Returns | Description |
|---|---|---|---|
| SpecificationVersion() | - | string | Specification version |
| Provider() | - | string | Provider name |
| ModelID() | - | string | Model identifier |
| DoTranscribe() | ctx, *TranscriptionOptions | *types.TranscriptionResult, error | Transcribe audio to text |
TranscriptionOptions
type TranscriptionOptions struct {
Audio []byte
MimeType string
Language string
Timestamps bool
}
Examples
Using a Transcription Model
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/digitallysavvy/go-ai/pkg/provider"
"github.com/digitallysavvy/go-ai/pkg/providers/openai"
)
func main() {
p := openai.New(openai.Config{
APIKey: "your-api-key",
})
model, err := p.TranscriptionModel("whisper-1")
if err != nil {
log.Fatal(err)
}
audioData, err := os.ReadFile("audio.mp3")
if err != nil {
log.Fatal(err)
}
result, err := model.DoTranscribe(context.Background(), &provider.TranscriptionOptions{
Audio: audioData,
MimeType: "audio/mpeg",
Language: "en",
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Transcription:", result.Text)
}
See Also
- Transcribe - High-level transcription function
- SpeechModel - Text-to-speech interface
- Custom Provider - Implementing custom providers