Skip to main content

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​

MethodParametersReturnsDescription
SpecificationVersion()-stringSpecification version
Provider()-stringProvider name
ModelID()-stringModel identifier
DoTranscribe()ctx, *TranscriptionOptions*types.TranscriptionResult, errorTranscribe 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​