オーディオHAL

Audio HAL

オーディオボードハードウェアの抽象化レイヤーは、ユーザーアプリケーションとESP32 LyraTなどの特定のオーディオボードのハードウェアドライバー間のインターフェイスとして機能します。

Abstraction layer for audio board hardware, serves as an interface between the user application and the hardware driver for specific audio board like ESP32 LyraT.

APIは、ADCおよびDAC信号変換のサンプリングレート、データビット幅、I2Cストリームパラメータ、およびADCおよびDACに接続された信号チャネルの選択を構成するためのデータ構造を提供します。 また、いくつかの特定の機能が含まれています。 オーディオボードの初期化、audio_hal_init()、ボリュームの制御、audio_hal_get_volume()およびaudio_hal_set_volume()

The API provides data structures to configure sampling rates of ADC and DAC signal conversion, data bit widths, I2C stream parameters, and selection of signal channels connected to ADC and DAC. It also contains several specific functions to e.g. initialize the audio board, audio_hal_init(), control the volume, audio_hal_get_volume() and audio_hal_set_volume().

APIリファレンス

API Reference

ヘッダーファイル

Header File

関数

Functions
audio_hal_handle_t audio_hal_init(audio_hal_codec_config_t *audio_hal_conf, audio_hal_func_t *audio_hal_func)

メディアコーデックドライバを初期化します。

Initialize media codec driver.

Note
選択したコーデックがすでにインストールされている場合は、audio_halハンドルが返されます。
If selected codec has already been installed, it’ll return the audio_hal handle.
Return
int、0成功、その他は失敗
int, 0success, othersfail
Parameters
  • audio_hal_conf: 構造を構成するaudio_hal_config_t
    audio_hal_conf: Configure structure audio_hal_config_t
  • audio_hal_func: コーデックチップのオーディオを操作するために使用される機能を含む構造
    audio_hal_func: Structure containing functions used to operate audio the codec chip

esp_err_t audio_hal_deinit(audio_hal_handle_t audio_hal)

メディアコーデックドライバの初期化を解除します。

Uninitialize media codec driver.

Return
int、0成功、その他は失敗
int, 0success, othersfail
Parameters
  • audio_hal: 選択したオーディオコーデックの参照関数ポインタ
    audio_hal: reference function pointer for selected audio codec

esp_err_t audio_hal_ctrl_codec(audio_hal_handle_t audio_hal, audio_hal_codec_mode_t mode, audio_hal_ctrl_t audio_hal_ctrl)

コーデックドライバを開始/停止します。

Start/stop codec driver.

Return
int、0成功、その他は失敗
int, 0success, othersfail
Parameters
  • audio_hal: 選択したオーディオコーデックの参照関数ポインタ
    audio_hal: reference function pointer for selected audio codec
  • mode: エンコード/デコード/またはその両方のメディアhalコーデックモードを選択して、audio_hal_codec_mode_tから開始します
    mode: select media hal codec mode either encode/decode/or both to start from audio_hal_codec_mode_t
  • audio_hal_ctrl: 特定のモードの開始停止状態を選択します
    audio_hal_ctrl: select start stop state for specific mode

esp_err_t audio_hal_codec_iface_config(audio_hal_handle_t audio_hal, audio_hal_codec_mode_t mode, audio_hal_codec_i2s_iface_t *iface)

コーデックI2Sインターフェイスのサンプルレートと設定 ビット幅とフォーマットはI2SまたはPCM / DSPのいずれかです。

Set codec I2S interface samples rate & bit width and format either I2S or PCM/DSP.

Return
  • 0 成功
    0 Success
  • -1 エラー
    -1 Error
Parameters
  • audio_hal: 選択したオーディオコーデックの参照関数ポインタ
    audio_hal: reference function pointer for selected audio codec
  • mode: エンコード/デコード/またはその両方のメディアhalコーデックモードを選択して、audio_hal_codec_mode_tから開始します
    mode: select media hal codec mode either encode/decode/or both to start from audio_hal_codec_mode_t
  • iface: I2Sサンプルレート(例:16000、44100)、I2Sビット幅(16、24、32)、I2sフォーマット(I2S、PCM、DSP)。
    iface: I2S sample rate (ex: 16000, 44100), I2S bit width (16, 24, 32),I2s format (I2S, PCM, DSP).

esp_err_t audio_hal_set_mute(audio_hal_handle_t audio_hal, bool mute)

音声ミュートを設定します。 コーデックのDACミュートを有効または無効にします。

Set voice mute. Enables or disables DAC mute of a codec.

Note
audio_hal_get_volumeは、ミュート状態でもゼロ以外の数値を示します。 スピーカーのミュートが解除されると、その番号に設定されます。
audio_hal_get_volume will still give a non-zero number in mute state. It will be set to that number when speaker is unmuted.
Return
int、0成功、その他は失敗
int, 0success, othersfail
Parameters
  • audio_hal: 選択したオーディオコーデックの参照関数ポインタ
    audio_hal: reference function pointer for selected audio codec
  • mute: 真/偽。 真のスピーカーがミュートされ、偽のスピーカーがミュート解除される場合。
    mute: true/false. If true speaker will be muted and if false speaker will be unmuted.

esp_err_t audio_hal_set_volume(audio_hal_handle_t audio_hal, int volume)

音声音量を設定します。

Set voice volume.

Note
ボリュームが0の場合、ミュートが有効になり、範囲は0〜100になります。
if volume is 0, mute is enabled,range is 0-100.
Return
int、0成功、その他は失敗
int, 0success, othersfail
Parameters
  • audio_hal: 選択したオーディオコーデックの参照関数ポインタ
    audio_hal: reference function pointer for selected audio codec
  • volume: ボリュームの値(パーセント(%))
    volume: value of volume in percent(%)

esp_err_t audio_hal_get_volume(audio_hal_handle_t audio_hal, int *volume)

音声音量を取得します。

get voice volume.

Note
ボリュームが0の場合、ミュートが有効になり、範囲は0〜100です。
if volume is 0, mute is enabled, range is 0-100.
Return
int、0成功、その他は失敗
int, 0success, othersfail
Parameters
  • audio_hal: 選択したオーディオコーデックの参照関数ポインタ
    audio_hal: reference function pointer for selected audio codec
  • volume: 返されたパーセントで表したボリュームの値(%)
    volume: value of volume in percent returned(%)

構造体

Structures
struct audio_hal_codec_i2s_iface_t

オーディオコーデックチップのI2sインターフェイス構成。

I2s interface configuration for audio codec chip.

Public Members

audio_hal_iface_mode_t mode

オーディオコーデックチップモード

audio codec chip mode
audio_hal_iface_format_t fmt

I2Sインターフェースフォーマット

I2S interface format
audio_hal_iface_samples_t samples

1秒あたりのI2Sインターフェイスサンプル

I2S interface samples per second
audio_hal_iface_bits_t bits

サンプルあたりのi2sインターフェイスのビット数

i2s interface number of bits per sample
struct audio_hal_codec_config_t

オーディオコーデックチップの初期化用にメディアhalを構成します。

Configure media hal for initialization of audio codec chip.

Public Members

audio_hal_adc_input_t adc_input

adcチャネルを設定します

set adc channel
audio_hal_dac_output_t dac_output

dacチャネルを設定します

set dac channel
audio_hal_codec_mode_t codec_mode

コーデックモードを選択:adc、dac、またはその両方

select codec mode: adc, dac or both
audio_hal_codec_i2s_iface_t i2s_iface

I2Sインターフェース構成を設定する

set I2S interface configuration
struct audio_hal

オーディオコーデックチップの操作に使用される関数と変数の構成。

Configuration of functions and variables used to operate audio codec chip.

Public Members

esp_err_t (*audio_codec_initialize)(audio_hal_codec_config_t *codec_cfg)

コーデックを初期化する

initialize codec
esp_err_t (*audio_codec_deinitialize)(void)

コーデックの初期化を解除します

deinitialize codec
esp_err_t (*audio_codec_ctrl)(audio_hal_codec_mode_t mode, audio_hal_ctrl_t ctrl_state)

コーデックのモードと状態を制御する

control codec mode and state
esp_err_t (*audio_codec_config_iface)(audio_hal_codec_mode_t mode, audio_hal_codec_i2s_iface_t *iface)

i2sインターフェースを構成する

configure i2s interface
esp_err_t (*audio_codec_set_mute)(bool mute)

コーデックミュートを設定

set codec mute
esp_err_t (*audio_codec_set_volume)(int volume)

コーデックボリュームを設定する

set codec volume
esp_err_t (*audio_codec_get_volume)(int *volume)

コーデックボリュームを取得する

get codec volume
xSemaphoreHandle audio_hal_lock

コーデックのセマフォ

semaphore of codec
void *handle

オーディオコーデックのハンドル

handle of audio codec

マクロ

Macros
AUDIO_HAL_VOL_DEFAULT

タイプ定義

Type Definitions
typedef struct audio_hal *audio_hal_handle_t
typedef struct audio_hal audio_hal_func_t

オーディオコーデックチップの操作に使用される関数と変数の構成。

Configuration of functions and variables used to operate audio codec chip.

列挙

Enumerations
enum audio_hal_codec_mode_t

メディアハルコーデックモードを選択します。

Select media hal codec mode.

Values:

AUDIO_HAL_CODEC_MODE_ENCODE = 1

adcを選択します

select adc
AUDIO_HAL_CODEC_MODE_DECODE

dacを選択します

select dac
AUDIO_HAL_CODEC_MODE_BOTH

adcとdacの両方を選択します

select both adc and dac
AUDIO_HAL_CODEC_MODE_LINE_IN

adcチャネルを設定します

set adc channel
enum audio_hal_adc_input_t

入力マイク信号用のADCチャネルを選択します。

Select adc channel for input mic signal.

Values:

AUDIO_HAL_ADC_INPUT_LINE1 = 0x00

adcチャンネル1へのマイク入力

mic input to adc channel 1
AUDIO_HAL_ADC_INPUT_LINE2

adcチャンネル2へのマイク入力

mic input to adc channel 2
AUDIO_HAL_ADC_INPUT_ALL

adcの両方のチャンネルへのマイク入力

mic input to both channels of adc
AUDIO_HAL_ADC_INPUT_DIFFERENCE

adc差分チャンネルへのマイク入力

mic input to adc difference channel
enum audio_hal_dac_output_t

dac出力のチャンネルを選択します。

Select channel for dac output.

Values:

AUDIO_HAL_DAC_OUTPUT_LINE1 = 0x00

チャネル1へのdac出力信号

dac output signal to channel 1
AUDIO_HAL_DAC_OUTPUT_LINE2

チャネル2へのdac出力信号

dac output signal to channel 2
AUDIO_HAL_DAC_OUTPUT_ALL

両方のチャネルへのdac出力信号

dac output signal to both channels
enum audio_hal_ctrl_t

動作モードを選択します。つまり、オーディオコーデックチップの開始または停止です。

Select operating mode i.e. start or stop for audio codec chip.

Values:

AUDIO_HAL_CTRL_STOP = 0x00

停止モードを設定する

set stop mode
AUDIO_HAL_CTRL_START = 0x01

スタートモードを設定する

set start mode
enum audio_hal_iface_mode_t

I2Sインターフェイスの動作モード(オーディオコーデックチップのマスターまたはスレーブ)を選択します。

Select I2S interface operating mode i.e. master or slave for audio codec chip.

Values:

AUDIO_HAL_MODE_SLAVE = 0x00

スレーブモードを設定する

set slave mode
AUDIO_HAL_MODE_MASTER = 0x01

マスターモードを設定する

set master mode
enum audio_hal_iface_samples_t

1秒あたりのI2Sインターフェイスサンプルを選択します。

Select I2S interface samples per second.

Values:

AUDIO_HAL_08K_SAMPLES

1秒あたり8kサンプルに設定

set to 8k samples per second
AUDIO_HAL_11K_SAMPLES

1秒あたり11.025kサンプルに設定

set to 11.025k samples per second
AUDIO_HAL_16K_SAMPLES

1秒あたり16kサンプルに設定

set to 16k samples in per second
AUDIO_HAL_22K_SAMPLES

1秒あたり22.050kサンプルに設定

set to 22.050k samples per second
AUDIO_HAL_24K_SAMPLES

1秒あたり24kサンプルに設定

set to 24k samples in per second
AUDIO_HAL_32K_SAMPLES

1秒あたり32kサンプルに設定

set to 32k samples in per second
AUDIO_HAL_44K_SAMPLES

1秒あたり44.1kサンプルに設定

set to 44.1k samples per second
AUDIO_HAL_48K_SAMPLES

1秒あたり48kサンプルに設定

set to 48k samples per second
enum audio_hal_iface_bits_t

サンプルあたりのI2Sインターフェイスのビット数を選択します。

Select I2S interface number of bits per sample.

Values:

AUDIO_HAL_BIT_LENGTH_16BITS = 1

サンプルあたり16ビットを設定

set 16 bits per sample
AUDIO_HAL_BIT_LENGTH_24BITS

サンプルあたり24ビットを設定

set 24 bits per sample
AUDIO_HAL_BIT_LENGTH_32BITS

サンプルあたり32ビットを設定

set 32 bits per sample
enum audio_hal_iface_format_t

オーディオコーデックチップのI2Sインターフェイスフォーマットを選択します。

Select I2S interface format for audio codec chip.

Values:

AUDIO_HAL_I2S_NORMAL = 0

通常のI2Sフォーマットを設定する

set normal I2S format
AUDIO_HAL_I2S_LEFT

左のフォーマットをすべて設定

set all left format
AUDIO_HAL_I2S_RIGHT

すべての正しい形式を設定します

set all right format
AUDIO_HAL_I2S_DSP

dsp / pcm形式を設定します

set dsp/pcm format