更新时间:2026-07-03 GMT+08:00
分享

音频

音频内部使用PyAV库处理数据。支持的音频格式:mp3、aiff、flac、wav、wma、m4a、aac。音频对象的属性和方法如下所示:

表1 属性(Properties)

属性名

类型

说明

filename

str

音频文件的路径或文件名(如果从文件加载)。

format

str

音频格式(如wav、mp3)。

subtype

str

音频编码。

data

bytes

音频数据。

表2 方法(Methods)

方法名

参数

返回值

说明

__init__

filename: Union[str, os.PathLike] = None

data: Union[str, bytes, sf.SoundFile] = None

None

构造方法:从文件(filename)或数据(data)加载音频,支持二进制数据或soundfile对象。

truncate

start_time: float = 0

end_time: Optional[float] = None

Audio

截取音频片段(时间单位为秒),返回新Audio对象。

convert_format

format: str

subtype: Optional[str] = None

Audio

转换音频格式(如wav转mp3),返回新Audio对象。

write

filename: str

None

将音频写入指定文件(自动推断格式)。

split

interval: int

list[Audio]

按指定interval秒数分割audio为片段列表。

音频读写

该示例演示如何从obs路径下"obs://xxxxx/xxxxx"读取音频,并且加载到dataset中,然后从中随机选取3条音频再写回到指定的obs路径下。

import os
from aura_frame.multimodal import ai_lake

target_database = "test"
conn = ai_lake.connect(
    aura_endpoint=os.getenv("AURA_ENDPOINT"),
    aura_endpoint_name=os.getenv("AURA_ENDPOINT_NAME"),
    aura_workspace_id=os.getenv("AURA_WORKSPACE"),
    lf_catalog_name=os.getenv("AURA_CATALOG"),
    access_key=os.getenv("access_key"),
    secret_key=os.getenv("secret_key"),
    default_database=target_database,
    use_single_cn_mode=True
)
ds = conn.read_audios("obs://xxxxx/xxxxx", start=0, end=-1, sample_rate=16000, file_extensions=["wav", "flac"], include_paths=True)
ds.show(3)

ds_to_write = ds.select_columns([ds.audio]).limit(3)
ds_to_write.write_audios("obs://xxxxx/xxxxx", "audio", file_format="wav", start=0, end=-1, sample_rate=16000, filename_prefix="audio_", try_create_dir=True)

conn.close()

相关文档