如何使用GNU Octave实现双声道录制?遇属性设置错误求助
GNU Octave双声道音频录制解决方案
问题核心:audiorecorder对象的NumberOfChannels是只读属性,无法在对象创建后通过set()方法修改,必须在初始化阶段就明确指定声道数、采样率等参数。
正确初始化方式
直接在创建audiorecorder实例时,按顺序传入采样率、位深、声道数参数:
# 参数格式:audiorecorder(采样率, 采样位深, 声道数) recorder = audiorecorder(48000, 8, 2);
- 这里保留默认的8位采样位深,如果需要更高精度(比如16位),可以修改第二个参数:
recorder = audiorecorder(48000, 16, 2);
验证双声道录制
录制完成后,可通过getaudiodata()获取数据,检查维度确认双声道:
record(recorder); pause(5); % 录制5秒示例 stop(recorder); audio_data = getaudiodata(recorder); size(audio_data) % 输出应为 [总采样数, 2],表示两声道数据
可选:指定录音设备
如果系统有多个音频输入设备,可先查询设备列表,再指定对应DeviceID初始化:
# 查询所有可用音频输入设备 devices = audiodevinfo(); # 假设目标双声道设备的DeviceID为1(索引从0开始) recorder = audiorecorder(48000, 16, 2, 1);
内容的提问来源于stack exchange,提问作者szoftveres
相关产品推荐
相关产品推荐

