ソニック

Sonic

Sonicコンポーネントは、WAVストリームのオーディオパラメータを調整できる多次元フィルタとして機能します。 この機能は、たとえば次のような場合に役立ちます。 ユーザーが選択可能なレートでオーディオ録音の再生速度を上げます。

The Sonic component acts as a multidimensional filter that lets you adjust audio parameters of a WAV stream. This functionality may be useful to e.g. increase playback speed of an audio recording by a user selectable rate.

次のパラメータを調整できます:

The following parameters can be adjusted:
  • 速度
    speed
  • ピッチ
    pitch
  • 補間タイプ
    interpolation type

最初の2つのパラメーターの調整は、調整率を提供する浮動小数点値で表されます。 たとえば、オーディオサンプルの速度を2倍にするには、sonic_set_pitch_and_speed_info(el, 1.0, 2.0)を呼び出します。 速度をそのまま維持するには、sonic_set_pitch_and_speed_info(el, 1.0, 1.0)を呼び出します。

The adjustments of the first two parameters are represented by float values that provide the rate of adjustment. For example, to increase the speed of an audio sample by 2 times, call sonic_set_pitch_and_speed_info(el, 1.0, 2.0). To keep the speed as it is, call sonic_set_pitch_and_speed_info(el, 1.0, 1.0).

補間タイプには、高速で精度の低い線形補間、または低速で精度の高いFIR補間のいずれかを選択できます。

For the interpolation type you may select either faster but less accurate linear interpolation, or slower but more accurate FIR interpolation.

アプリケーション例

Application Example

このAPIの実装は、audio_processing/pipeline_sonicの例で示されています。

Implementation of this API is demonstrated in audio_processing/pipeline_sonic example.

APIリファレンス

API Reference

ヘッダーファイル

Header File

関数

Functions
esp_err_t sonic_set_info(audio_element_handle_t self, int rate, int ch)

ソニックが処理するオーディオサンプルレートとチャンネル数を設定します。

Sets the audio sample rate and the number of channels to be processed by the sonic.

Return
ESP_OK ESP_FAIL
Parameters
  • self: オーディオ要素ハンドル
    self: Audio element handle
  • rate: ストリームデータのサンプルレート
    rate: The sample rate of stream data
  • ch: ストリームデータのチャネル数
    ch: The number channels of stream data

esp_err_t sonic_set_pitch_and_speed_info(audio_element_handle_t self, float pitch, float speed)

ソニックが処理するオーディオのピッチと速度を設定します。

Sets the audio pitch and speed to be processed by the sonic.

Return
ESP_OK ESP_FAIL
Parameters
  • self: オーディオ要素ハンドル
    self: Audio element handle
  • pitch: オーディオファイルのピッチのスケールファクター。 0は元のピッチを意味します。 範囲は[0.2 4.0]です。
    pitch: Scale factor of pitch of audio file. 0 means the original pitch. The range is [0.2 4.0].
  • speed: オーディオファイルの速度の倍率。 0は元の速度を意味します。 範囲は[0.1 8.0]です。
    speed: Scale factor of speed of audio file. 0 means the original speed. The range is [0.1 8.0].

audio_element_handle_t sonic_init(sonic_cfg_t *config)

sonic用のオーディオエレメントハンドルを作成します。

Creates an Audio Element handle for sonic.

Return
ソニックオーディオエレメントハンドル
The sonic audio element handle
Parameters
  • config: ソニック構成
    config: The sonic configuration

構造体

Structures
struct sonic_info_t

sonicがファイルを処理するために必要なオーディオファイルと設定パラメータに関する情報。

Information on audio file and configuration parameters required by sonic to process the file.

Public Members

int samplerate

オーディオファイルのサンプルレート(Hz)

Audio file sample rate (in Hz)
int channel

オーディオファイルチャンネルの数(Mono = 1、Dual = 2)

Number of audio file channels (Mono=1, Dual=2)
int resample_linear_interpolate

単純な線形補間を使用するフラグ。 1は、単純な線形補間を使用することを示します。 0は、単純な線形補間を使用していないことを示します。

Flag of using simple linear interpolation. 1 indicates using simple linear interpolation. 0 indicates not using simple linear interpolation.
float pitch

オーディオファイルのピッチのスケールファクター。 「pitch」の値が0.3の場合、sonicによって処理されるオーディオファイルのピッチは元のファイルよりも低くなります。 「pitch」の値が1.3の場合、sonicによって処理されたオーディオファイルのピッチは元のファイルよりも30%高くなります。

Scale factor of pitch of audio file. If the value of ‘pitch’ is 0.3, the pitch of audio file processed by sonic islower than the original. If the value of ‘pitch’ is 1.3, the pitch of audio file processed by sonic is 30% higher than the original.
float speed

オーディオファイルの速度の倍率。 「speed」の値が0.3の場合、sonicによって処理されるオーディオファイルの速度は元のファイルより70%遅くなります。 「speed」の値が1.3の場合、sonicによって処理されるオーディオファイルの速度は元のファイルよりも30%速くなります。

Scale factor of speed of audio file. If the value of ‘speed’ is 0.3, the speed of audio file processed by sonic is 70% slower than the original. If the value of ‘speed’ is 1.3, the speed of audio file processed by sonic is 30% faster than the original.
struct sonic_cfg_t

ソニック構成。

Sonic configuration.

Public Members

sonic_info_t sonic_info

ソニックの情報

Information of sonic
int out_rb_size

出力リングバッファのサイズ

Size of output ring buffer
int task_stack

タスクスタックサイズ

Task stack size
int task_core

コアで実行されているタスク

Task running in core
int task_prio

タスクの優先度

Task priority

マクロ

Macros
SONIC_SET_VALUE_FOR_INITIALIZATION
SONIC_TASK_STACK
SONIC_TASK_CORE
SONIC_TASK_PRIO
SONIC_RINGBUFFER_SIZE
DEFAULT_SONIC_CONFIG()