リサンプルフィルター¶
Resample Filter
リサンプルフィルターは、着信データストリームをダウンサンプリングまたはアップサンプリングし、ステレオとモノラルの間でデータを変換するように設計されたオーディオ要素です。
The Resample Filter is an Audio Element designed to downsample or upsample the incoming data stream as well as to convert the data between stereo and mono.
アプリケーション例¶
Application Example
このAPIの実装は、次の例で示されています:
Implementation of this API is demonstrated in the following examples:
APIリファレンス¶
API Reference
関数¶
Functions
-
esp_err_t
rsp_filter_set_src_info
(audio_element_handle_t self, int src_rate, int src_ch)¶ ソースオーディオのサンプルレートと、リサンプルで処理するチャンネル数を設定します。
Set the source audio sample rate and the number of channels to be processed by the resample.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: オーディオ要素ハンドルself
: Audio element handlesrc_rate
: ストリームデータのサンプルレートsrc_rate
: The sample rate of stream datasrc_ch
: ストリームデータのチャネル数src_ch
: The number channels of stream data
-
audio_element_handle_t
rsp_filter_init
(rsp_filter_cfg_t *config)¶ オーディオエレメントハンドルを作成して、受信データをリサンプリングします。
Create an Audio Element handle to resample incoming data.
構成に応じて、アップサンプリング、ダウンサンプリング、およびモノラルとデュアル間のデータ変換があります。
Depending on configuration, there are upsampling, downsampling, as well as converting data between mono and dual.
- esp_resample_mode_tが
RESAMPLE_DECODE_MODE
の場合、src_rate
とsrc_ch
はaudio_element_getinfo
からフェッチされます。If the esp_resample_mode_t is
RESAMPLE_DECODE_MODE
,src_rate
andsrc_ch
will be fetched fromaudio_element_getinfo
. - esp_resample_mode_tが
RESAMPLE_ENCODE_MODE
の場合、src_rate
、src_ch
、dest_rate
、およびdest_ch
を構成する必要があります。If the esp_resample_mode_t is
RESAMPLE_ENCODE_MODE
,src_rate
,src_ch
,dest_rate
anddest_ch
must be configured.
- Return
- オーディオ要素ハンドラー
The audio element handler
- Parameters
config
: 構成config
: The configuration
- esp_resample_mode_tが
構造体¶
Structures
-
struct
rsp_filter_cfg_t
¶ フィルタ構成をリサンプルします。
Resample Filter Configuration.
Public Members
-
int
src_rate
¶ ソースPCMファイルのサンプリングレート(Hz)
The sampling rate of the source PCM file (in Hz)
-
int
src_ch
¶ ソースPCMファイルのチャネル数(Mono = 1、Dual = 2)
The number of channel(s) of the source PCM file (Mono=1, Dual=2)
-
int
dest_rate
¶ 宛先PCMファイルのサンプリングレート(Hz単位)
The sampling rate of the destination PCM file (in Hz)
-
int
dest_ch
¶ 宛先PCMファイルのチャネル数(Mono = 1、Dual = 2)
The number of channel(s) of the destination PCM file (Mono=1, Dual=2)
-
int
sample_bits
¶ PCMファイルのビット幅。 現在、サポートされているビット幅は16ビットのみです。
The bit width of the PCM file. Currently, the only supported bit width is 16 bits.
-
esp_resample_mode_t
mode
¶ リサンプリングモード(エンコードモードまたはデコードモード)。 デコードモードの場合、入力PCMの長さは一定です。 エンコーディングモードの場合、出力PCMの長さは一定です。
The resampling mode (the encoding mode or the decoding mode). For decoding mode, input PCM length is constant; for encoding mode, output PCM length is constant.
-
int
max_indata_bytes
¶ 入力PCMの最大バッファサイズ(バイト単位)
The maximum buffer size of the input PCM (in bytes)
-
int
out_len_bytes
¶ 出力ストリームデータのバッファ長。 このパラメーターは、エンコードモードで構成する必要があります。
The buffer length of the output stream data. This parameter must be configured in encoding mode.
-
esp_resample_type_t
type
¶ リサンプリングタイプ(自動、アップサンプリング、ダウンサンプリング)
The resampling type (Automatic, Upsampling and Downsampling)
-
int
complexity
¶ リサンプリングの複雑さを示します。 このパラメーターは、FIRフィルターが使用されている場合にのみ有効です。 範囲:0〜5; Oは最も複雑さが低いことを示します。これは、精度が最も低く、速度が最も速いことを意味します。 一方、4は最も複雑度が高いことを示します。つまり、精度が最も高く、速度が最も遅くなります。ユーザーが
複雑度
を0未満に設定した場合、複雑度
を0に設定できます。ユーザーが複雑度
を5を超えて設定した場合、複雑度
を5に設定できます。Indicates the complexity of the resampling. This parameter is only valid when a FIR filter is used. Range: 0~5; O indicates the lowest complexity, which means the accuracy is the lowest and the speed is the fastest; Meanwhile, 4 indicates the highest complexity, which means the accuracy is the highest and the speed is the slowest.If user set
complexity
less than 0,complexity
can be set 0. If user setcomplexity
more than 5,complexity
can be set 5.
-
int
down_ch_idx
¶ 選択されているチャネル(右チャネルまたは左チャネル)を示します。 このパラメーターは、複雑度パラメーターが0に設定され、入力ファイルのチャネル数がデュアルからモノラルに変更された場合にのみ有効です。
Indicates the channel that is selected (the right channel or the left channel). This parameter is only valid when the complexity parameter is set to 0 and the number of channel(s) of the input file has changed from dual to mono.
-
int
out_rb_size
¶ 出力リングバッファサイズ
Output ringbuffer size
-
int
task_stack
¶ タスクスタックサイズ
Task stack size
-
int
task_core
¶ コアで実行されているタスク
Task running on core
-
int
task_prio
¶ タスクの優先度
Task priority
-
int