Documentation
¶
Overview ¶
Package audio 提供音频处理功能
本包实现了专业音频处理功能:
- 音量标准化(EBU R128 / ITU-R BS.1770)
- 音频降噪
- 多轨混音
- 声道映射
所有处理器支持实时流处理和文件处理两种模式。
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidSampleRate = errors.New("audio: invalid sample rate") ErrInvalidChannels = errors.New("audio: invalid channel count") ErrInvalidData = errors.New("audio: invalid audio data") ErrBufferTooSmall = errors.New("audio: buffer too small") )
错误定义
Functions ¶
This section is empty.
Types ¶
type AudioBuffer ¶
type AudioBuffer struct {
Data []float64 // 交错的音频数据
Channels int // 声道数
SampleRate int // 采样率
Samples int // 每声道采样数
Format SampleFormat // 原始格式
}
AudioBuffer 音频缓冲区
func NewAudioBuffer ¶
func NewAudioBuffer(channels, sampleRate, samples int) *AudioBuffer
NewAudioBuffer 创建音频缓冲区
func (*AudioBuffer) GetSample ¶
func (b *AudioBuffer) GetSample(channel, sample int) float64
GetSample 获取指定声道和位置的采样值
func (*AudioBuffer) SetSample ¶
func (b *AudioBuffer) SetSample(channel, sample int, value float64)
SetSample 设置指定声道和位置的采样值
type ChannelLayout ¶
type ChannelLayout int
ChannelLayout 声道布局
const ( LayoutMono ChannelLayout = iota LayoutStereo LayoutSurround51 // 5.1 LayoutSurround71 // 7.1 )
type ChannelMapper ¶
type ChannelMapper struct {
// contains filtered or unexported fields
}
ChannelMapper 声道映射器
func NewChannelMapper ¶
func NewChannelMapper(input, output ChannelLayout) *ChannelMapper
NewChannelMapper 创建声道映射器
func (*ChannelMapper) SetMapping ¶
func (m *ChannelMapper) SetMapping(outputChannel, inputChannel int, gain float64)
SetMapping 设置自定义映射
type DenoiseConfig ¶
type DenoiseConfig struct {
Strength float64 // 降噪强度 (0.0-1.0)
NoiseFloor float64 // 噪声底限 (dB)
AttackTime float64 // 起始时间 (ms)
ReleaseTime float64 // 释放时间 (ms)
}
DenoiseConfig 降噪配置
type Denoiser ¶
type Denoiser struct {
// contains filtered or unexported fields
}
Denoiser 音频降噪器
func NewDenoiser ¶
func NewDenoiser(config DenoiseConfig, sampleRate, channels int) *Denoiser
NewDenoiser 创建降噪器
func (*Denoiser) LearnNoise ¶
func (d *Denoiser) LearnNoise(buffer *AudioBuffer) error
LearnNoise 学习噪声特征
func (*Denoiser) Process ¶
func (d *Denoiser) Process(buffer *AudioBuffer) (*AudioBuffer, error)
Process 处理音频(降噪)
type LoudnessConfig ¶
type LoudnessConfig struct {
Standard LoudnessStandard // 响度标准
TargetLoudness float64 // 目标响度 (LUFS)
MaxTruePeak float64 // 最大真峰值 (dBTP)
MaxLoudnessRange float64 // 最大响度范围 (LU)
}
LoudnessConfig 响度配置
func DefaultLoudnessConfig ¶
func DefaultLoudnessConfig() LoudnessConfig
DefaultLoudnessConfig 返回默认响度配置(EBU R128)
type LoudnessMeter ¶
type LoudnessMeter struct {
// contains filtered or unexported fields
}
LoudnessMeter EBU R128 响度计
func NewLoudnessMeter ¶
func NewLoudnessMeter(sampleRate, channels int) *LoudnessMeter
NewLoudnessMeter 创建响度计
func (*LoudnessMeter) GetIntegratedLoudness ¶
func (m *LoudnessMeter) GetIntegratedLoudness() float64
GetIntegratedLoudness 获取积分响度
func (*LoudnessMeter) GetMomentaryLoudness ¶
func (m *LoudnessMeter) GetMomentaryLoudness() float64
GetMomentaryLoudness 获取瞬时响度(400ms)
func (*LoudnessMeter) GetShortTermLoudness ¶
func (m *LoudnessMeter) GetShortTermLoudness() float64
GetShortTermLoudness 获取短期响度(3s)
func (*LoudnessMeter) Process ¶
func (m *LoudnessMeter) Process(buffer *AudioBuffer) error
Process 处理音频块
type LoudnessStandard ¶
type LoudnessStandard int
LoudnessStandard 响度标准
const ( StandardEBUR128 LoudnessStandard = iota // EBU R128 (-23 LUFS) StandardATSCA85 // ATSC A/85 (-24 LKFS) StandardSONYJP // Sony Japan (-24 LUFS) StandardCustom // 自定义 )
type MixerTrack ¶
type MixerTrack struct {
Name string // 轨道名称
Volume float64 // 音量 (0.0-2.0)
Pan float64 // 声像 (-1.0 左, 0 中, 1.0 右)
Mute bool // 静音
Solo bool // 独奏
Buffer *AudioBuffer // 音频数据
}
MixerTrack 混音轨道
type Normalizer ¶
type Normalizer struct {
// contains filtered or unexported fields
}
Normalizer 音量标准化器
func NewNormalizer ¶
func NewNormalizer(config LoudnessConfig, sampleRate, channels int) *Normalizer
NewNormalizer 创建标准化器
func (*Normalizer) Normalize ¶
func (n *Normalizer) Normalize(buffer *AudioBuffer) *AudioBuffer
Normalize 标准化音频
type SampleFormat ¶
type SampleFormat int
SampleFormat 采样格式
const ( SampleFormatS16 SampleFormat = iota // 16-bit signed integer SampleFormatS32 // 32-bit signed integer SampleFormatF32 // 32-bit float SampleFormatF64 // 64-bit float )
Source Files
¶
- processor.go