MATLAB中audiowrite函数用法

目录

语法

说明

示例

写入音频文件

指定采样位数和元数据


        audiowrite函数的功能是写音频文件。

语法

audiowrite(filename,y,Fs)
audiowrite(filename,y,Fs,Name,Value)

说明

        audiowrite(filename,y,Fs) 以采样率 Fs 将音频数据矩阵 y 写入名为 filename 的文件。filename 输入还指定了输出文件格式。输出数据类型取决于音频数据 y 的输出文件格式和数据类型。

        audiowrite(filename,y,Fs,Name,Value) 使用一个或多个 Name,Value 对组参数指定的其他选项。

示例

写入音频文件

        从示例文件 handel.mat 创建 WAVE 文件,并将此文件读回 MATLAB®。在当前文件夹中写 WAVE (.wav) 文件。

load handel.mat

filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs

        使用 audioread 将数据读回 MATLAB。

[y,Fs] = audioread(filename);

        收听音频。

sound(y,Fs);

指定采样位数和元数据

        从示例文件 handel.mat 创建 FLAC 文件并指定采样输出位数和注释。

load handel.mat

filename = 'handel.flac';
audiowrite(filename,y,Fs,'BitsPerSample',24,...
'Comment','This is my new audio file.');
clear y Fs

        使用 audioinfo 函数查看有关新 FLAC 文件的信息。

info = audioinfo(filename) ;

        info 结构体包含以下信息字段:Filename、CompressionMethod、NumChannels、SampleRate、TotalSamples、Duration、Title、Comment、Artist 和 BitsPerSample。

        要写入的文件的名称或文件的完整路径,指定为包含文件扩展名的字符向量或字符串标量。根据写入的位置,filename 可以采用以下形式之一。

·当前位置,即:'sample_audio.wav'

·其它文件夹位置,即:'C:\myFolder\sample_audio.mp3'或者'myFolder\sample_audio.wav'

·远程位置,即:scheme_name://path_to_file/my_file.ext

        audiowrite函数支持以下文件格式,即:

平台支持文件格式
所有平台FLAC (.flac)
OGG (.ogg)
OPUS (.opus)
WAVE (.wav)
Windows® 和 MacMPEG-4 AAC(.m4a、.mp4)

        要写入的音频数据,指定为 m×n 实矩阵,其中 m 是要写入的音频样本数,n 是要写入的音频通道数。

        如果 m 或 n 是 1,则 audiowrite 假定此维指定音频通道数,其他维指定音频样本数。

        最大通道数量取决于文件格式。

文件格式最大通道数
WAVE (.wav)1024
OGG (.ogg)255
OPUS (.opus)255
FLAC (.flac)8
MPEG-4 AAC(.m4a、.mp4)2

        y中的数据有效范围取决于 y 的数据类型。

y 的数据类型y 的有效范围
uint80 ≤ y ≤ 255
int16-32768 ≤ y ≤ +32767
int32-2^31 ≤ y ≤ 2^31–1
single-1.0 ≤ y ≤ +1.0
double-1.0 ≤ y ≤ +1.0

        音频数据 y 的采样率(以赫兹为单位),指定为大于 0 的正整数标量。当写入 .opus 文件时,audiowrite 仅支持 48000、24000、16000、12000 或 8000 的采样率。在 Windows 平台上写入到 .m4a 或 .mp4 文件中时,audiowrite 仅支持 48000 和 44100 的采样率。

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值