maix::audio
maix.audio module
This is
maix::audio
module of MaixCDK.
All of these elements are in namespacemaix::audio
.For MaixCDK developer: DO NOT edit this doc file manually, this doc is auto generated!
Module
No module
Enum
Format
Audio type
item | describe |
---|---|
values | FMT_NONE: format invalid FMT_S8: unsigned 8 bits FMT_S16_LE: signed 16 bits, little endian FMT_S32_LE: signed 32 bits, little endian FMT_S16_BE: signed 16 bits, big endian FMT_S32_BE: signed 32 bits, big endian FMT_U8: unsigned 8 bits FMT_U16_LE: unsigned 16 bits, little endian FMT_U32_LE: unsigned 32 bits, little endian FMT_U16_BE: unsigned 16 bits, big endian FMT_U32_BE: unsigned 32 bits, big endian |
C++ defination code:
enum Format { FMT_NONE = 0, // format invalid FMT_S8, // unsigned 8 bits FMT_S16_LE, // signed 16 bits, little endian FMT_S32_LE, // signed 32 bits, little endian FMT_S16_BE, // signed 16 bits, big endian FMT_S32_BE, // signed 32 bits, big endian FMT_U8, // unsigned 8 bits FMT_U16_LE, // unsigned 16 bits, little endian FMT_U32_LE, // unsigned 32 bits, little endian FMT_U16_BE, // unsigned 16 bits, big endian FMT_U32_BE, // unsigned 32 bits, big endian }
Variable
fmt_bits
Map the audio format to the number of bits
item | description |
---|---|
param | format: audio format |
return | number of bits |
value | { 0, 8, 16, 32, 16, 32, 8, 16, 32, 16, 32 } |
readonly | True |
C++ defination code:
const std::vector<int> fmt_bits = { 0, 8, 16, 32, 16, 32, 8, 16, 32, 16, 32 }
Function
Class
File
Audio file reader
C++ defination code:
class File: public AudioFile<float>
__init__
Construct a new File object.
item | description |
---|---|
type | func |
param | path: wav or pcm file path sample_rate: sample rate, need to be filled in when parsing .pcm files channels: channels, need to be filled in when parsing .pcm files bits_per_sample: bits per sample, need to be filled in when parsing .pcm files |
static | False |
C++ defination code:
File(int sample_rate = 16000, int channels = 1, int bits_per_sample = 16)
load
Loads an audio file from a given file path.
item | description |
---|---|
type | func |
param | path: The file path to load the audio file from. sample_rate: The sample rate of the audio file. Only required for PCM files channels: The number of channels in the audio file. Only required for PCM files bits_per_sample: The number of bits per sample in the audio file. Only required for PCM files |
return | An error code indicating whether the operation was successful or not. |
static | False |
C++ defination code:
err::Err load(std::string path, int sample_rate = 16000, int channels = 1, int bits_per_sample = 16)
save
Saves an audio file to a given file path.
item | description |
---|---|
type | func |
param | path: The path to the file where the audio file will be saved. |
return | An error code indicating whether the operation was successful or not. |
static | False |
C++ defination code:
err::Err save(std::string path)
get_pcm
Get pcm data
item | description |
---|---|
type | func |
return | pcm data. datatype @see Bytes |
static | False |
C++ defination code:
Bytes *get_pcm(bool copy = true)
set_pcm
Set pcm data
item | description |
---|---|
type | func |
param | new_pcm: pcm data. datatype @see Bytes |
static | False |
C++ defination code:
void set_pcm(Bytes *new_pcm, bool copy = true)
sample_bits
Get sample bit
item | description |
---|---|
type | func |
param | new_sample_bit: if new_sample_bit > 0, set sample bit |
return | current sample bit |
static | False |
C++ defination code:
int sample_bits(int new_sample_bits = -1)
channels
Get channels
item | description |
---|---|
type | func |
param | new_channels: if new_channels > 0, change channels |
return | current channels |
static | False |
C++ defination code:
int channels(int new_channels = -1)
sample_rate
Get sample rate
item | description |
---|---|
type | func |
param | new_sample_rate: if new_sample_rate > 0, change sample rate |
return | current sample rate |
static | False |
C++ defination code:
int sample_rate(int new_sample_rate = -1)
Recorder
Recorder class
C++ defination code:
class Recorder
Recorder
Construct a new Recorder object. currectly only pcm and wav formats supported.
item | description |
---|---|
type | func |
param | path: record path. the path determines the location where you save the file, if path is none, the audio module will not save file. sample_rate: record sample rate, default is 48000(48KHz), means 48000 samples per second. format: record sample format, default is audio::Format::FMT_S16_LE, means sampling 16 bits at a time and save as signed 16 bits, little endian. see @audio::Format channel: record sample channel, default is 1, means 1 channel sampling at the same time block: block record, default is true, means block record, if false, record will not block |
static | False |
C++ defination code:
Recorder(std::string path = std::string(), int sample_rate = 48000, audio::Format format = audio::Format::FMT_S16_LE, int channel = 1, bool block = true)
volume
Set/Get record volume
item | description |
---|---|
type | func |
param | value: volume value, If you use this parameter, audio will set the value to volume, if you don't, it will return the current volume. range is [0, 100]. |
return | the current volume |
static | False |
C++ defination code:
int volume(int value = -1)
mute
Mute
item | description |
---|---|
type | func |
note | MaixCAM2 dose not support this api. |
param | data: mute data, If you set this parameter to true, audio will set the value to mute, if you don't, it will return the current mute status. |
return | Returns whether mute is currently enabled. |
static | False |
C++ defination code:
bool mute(int data = -1)
reset
Reset record status
item | description |
---|---|
type | func |
param | start: start prepare audio data, default is True |
static | False |
C++ defination code:
void reset(bool start = true)
record
Record, Read all cached data in buffer and return. If there is no audio data in the buffer, may return empty data.
item | description |
---|---|
type | func |
note | 1. Do not set the time too low, for example: 1ms, as the buffer may not be ready with audio data, which could corrupt the internal state. 2. In non-blocking mode, you need to actively execute reset() before you can start capturing audio. Additionally, in non-blocking mode, if the buffer does not have enough data, only the currently prepared audio data will be returned. the length of the actual output audio data may not match the length of the captured audio data. |
param | record_ms: Block and record audio data lasting record_ms milliseconds and save it to a file. |
return | pcm data. datatype @see Bytes. For MaixCDK users, you need to manually release the returned PCM object. |
static | False |
C++ defination code:
maix::Bytes *record(int record_ms = -1)
record_bytes
Record, Read all cached data in buffer and return. If there is no audio data in the buffer, may return empty data.
item | description |
---|---|
type | func |
note | In non-blocking mode, you need to actively execute reset() before you can start capturing audio. Additionally, in non-blocking mode, if the buffer does not have enough data, only the currently prepared audio data will be returned. the length of the actual output audio data may not match the length of the captured audio data. |
param | record_size: Record audio data of size record_size. |
return | pcm data. datatype @see Bytes. For MaixCDK users, you need to manually release the returned PCM object. |
static | False |
C++ defination code:
maix::Bytes *record_bytes(int record_size = -1)
finish
Finish the record, if you have passed in the path, this api will save the audio data to file.
item | description |
---|---|
type | func |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err finish()
frame_size
Returns the number of bytes for frame_count frames.
item | description |
---|---|
type | func |
param | frame_count: frame count |
return | frame bytes |
static | False |
C++ defination code:
int frame_size(int frame_count = 1)
get_remaining_frames
Return the number of frames available for reading during recording, unit is frame.
item | description |
---|---|
type | func |
note | 1. MaixCAM2 dose not support this api. 2. The number of bytes per frame can be calculated using frame_size(). |
return | remaining frames |
static | False |
C++ defination code:
int get_remaining_frames()
period_size
Set/Get the audio buffer size, unit: frame.
item | description |
---|---|
type | func |
note | 1. Generally, the buffer size needs to be modified during non-blocking operations. 2. The number of bytes per frame can be calculated using frame_size(). |
param | period_size: When period_size is less than 0, the current value of period_size will be returned; when period_size is greater than 0, period_size will be updated, and the size of period_size after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_size(int period_size = -1)
period_count
Set/Get the audio buffer count, unit: frame.
item | description |
---|---|
type | func |
note | Generally, the buffer size needs to be modified during non-blocking operations. |
param | period_count: When period_count is less than 0, the current value of period_count will be returned; when period_count is greater than 0, period_count will be updated, and the size of period_count after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_count(int period_count = -1)
sample_rate
Get sample rate
item | description |
---|---|
type | func |
return | returns sample rate |
static | False |
C++ defination code:
int sample_rate()
format
Get sample format
item | description |
---|---|
type | func |
return | returns sample format |
static | False |
C++ defination code:
audio::Format format()
channel
Get sample channel
item | description |
---|---|
type | func |
return | returns sample channel |
static | False |
C++ defination code:
int channel()
Player
Player class
C++ defination code:
class Player
Player
Construct a new Player object
item | description |
---|---|
type | func |
param | path: player path. the path determines the location where you save the file, if path is none, the audio module will not save file. sample_rate: player sample rate, default is 48000(48KHz), means 48000 samples per second. format: player sample format, default is audio::Format::FMT_S16_LE, means sampling 16 bits at a time and save as signed 16 bits, little endian. see @audio::Format channel: player sample channel, default is 1, means 1 channel sampling at the same time block: block record, default is true, means block record, if false, record will not block |
static | False |
C++ defination code:
Player(std::string path = std::string(), int sample_rate = 48000, audio::Format format = audio::Format::FMT_S16_LE, int channel = 1, bool block = true)
volume
Set/Get player volume
item | description |
---|---|
type | func |
param | value: volume value, If you use this parameter, audio will set the value to volume, if you don't, it will return the current volume. range is [0, 100]. |
return | the current volume |
static | False |
C++ defination code:
int volume(int value = -1)
play
Play
item | description |
---|---|
type | func |
param | data: audio data, must be raw data |
return | error code, err::ERR_NONE means success, others means failed |
static | False |
C++ defination code:
err::Err play(maix::Bytes *data = maix::audio::Player::NoneBytes)
frame_size
Returns the number of bytes for frame_count frames.
item | description |
---|---|
type | func |
param | frame_count: frame count |
return | frame bytes |
static | False |
C++ defination code:
int frame_size(int frame_count = 1)
get_remaining_frames
Return the number of idle frames available for writing during playback, unit: frame. if there are no idle frames, it will cause blocking.
item | description |
---|---|
type | func |
note | 1. MaixCAM2 dose not support this api. 2. The number of bytes per frame can be calculated using frame_size(). |
return | remaining frames |
static | False |
C++ defination code:
int get_remaining_frames()
period_size
Set/Get the audio buffer size, unit: frame.
item | description |
---|---|
type | func |
note | 1. Generally, the buffer size needs to be modified during non-blocking operations. 2. The number of bytes per frame can be calculated using frame_size(). |
param | period_size: When period_size is less than 0, the current value of period_size will be returned; when period_size is greater than 0, period_size will be updated, and the size of period_size after setting will be returned. |
return | the current period size |
static | False |
C++ defination code:
int period_size(int period_size = -1)
period_count
Set/Get the audio buffer count, unit: frame.
item | description |
---|---|
type | func |
note | Generally, the buffer size needs to be modified during non-blocking operations. |
param | period_count: When period_count is less than 0, the current value of period_count will be returned; when period_count is greater than 0, period_count will be updated, and the size of period_count after setting will be returned. |
return | the current period count |
static | False |
C++ defination code:
int period_count(int period_count = -1)
reset
Reset player status
item | description |
---|---|
type | func |
param | start: start play audio data, default is False |
static | False |
C++ defination code:
void reset(bool start = false)
sample_rate
Get sample rate
item | description |
---|---|
type | func |
return | returns sample rate |
static | False |
C++ defination code:
int sample_rate()
format
Get sample format
item | description |
---|---|
type | func |
return | returns sample format |
static | False |
C++ defination code:
audio::Format format()
channel
Get sample channel
item | description |
---|---|
type | func |
return | returns sample channel |
static | False |
C++ defination code:
int channel()