Skip to content

Release Notes: v0.6.1

Release Date: 2026-06-15

Summary

Fixes audio format auto-detection for pre-recorded transcription and adopts the new format.Encoding type from omnivoice-core v0.13.0 for consistent encoding normalization.

Bug Fixes

Audio Format Auto-Detection

Previously, ConfigToPreRecordedOptions always set explicit encoding, sample rate, and channels even when not specified. This prevented Deepgram from auto-detecting these parameters from file headers (e.g., WAV files).

Before (broken):

// Empty config would still set encoding/sample_rate/channels
config := stt.TranscriptionConfig{}
// Resulted in: encoding=linear16, sample_rate=0, channels=0
// Deepgram failed to auto-detect from WAV headers

After (fixed):

// Empty config lets Deepgram auto-detect from file headers
config := stt.TranscriptionConfig{}
// No encoding/sample_rate/channels sent
// Deepgram reads metadata from WAV/MP3/FLAC headers

Refactoring

Encoding Normalization via omnivoice-core

Replaced local mapEncoding() and mapTTSEncoding() functions with format.Encoding.Normalize() from omnivoice-core. This provides:

  • Case-insensitive encoding names ("LINEAR16""linear16")
  • Alias support ("pcm16", "wav", "ulaw" → normalized forms)
  • Consistent behavior across all omni-* providers
// Old: local mapping functions
encoding := mapEncoding(config.Encoding)

// New: centralized normalization
encoding := format.Encoding(config.Encoding).Normalize()

Dependencies

Dependency Version
omnivoice-core v0.13.0
deepgram-go-sdk v3.7.0

Installation

go get github.com/plexusone/omni-deepgram@v0.6.1

Migration Guide

From v0.6.0

No breaking changes. All existing code continues to work.

If you were working around the auto-detection bug by explicitly setting encoding parameters, you can now remove those workarounds for files with headers (WAV, MP3, FLAC, etc.).