前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB播放声音(sound函数)

MATLAB播放声音(sound函数)

作者头像
里克贝斯
发布2021-05-21 15:22:37
7.9K1
发布2021-05-21 15:22:37
举报
文章被收录于专栏:图灵技术域图灵技术域

算法一泡就是几十分钟,算法跑的时候忙着看手机,希望算法跑完了能够提醒一下,然后就发现了sound()函数。不得不说MATLAB的功能真是齐全,我估计数字音频处理需要这些操作吧。

真的是太秀了!!!

百度了一番后,发现sound()函数不但可以播放自带的曲调,也能现编,下面是从互联网上整理的代码:

发出简单的声音:

MATLAB

代码语言:javascript
复制
% 响一声
sound(sin(2*pi*25*(1:4000)/100));

% 鸟声
load chirp
sound(y,Fs)

% 锣声
load gong
sound(y,Fs)

% 哈里路亚
load handel
sound(y,Fs)

% 笑声
load laughter
sound(y,Fs)

% 啪哒声
load splat
sound(y,Fs)

% 火车
load train
sound(y,Fs)

自制声音的播放:

MATLAB

代码语言:javascript
复制
    clear
    fs=44100;
    t=0: 1/fs: 0.5;

    %%%%%backing track%%%%%
    one=0.5*sin(2*pi*261.63*t);
    one=one+0.5*sin(2*pi*329.63*t);
    one=one+0.5*sin(2*pi*466.16*t);
    four=0.5*sin(2*pi*349.23*t);
    four=four+0.5*sin(2*pi*440*t);
    four=four+0.5*sin(2*pi*622.25*t);
    five=0.5*sin(2*pi*392*t);
    five=five+0.5*sin(2*pi*493.88*t);
    five=five+0.5*sin(2*pi*698.46*t);
    bar1=[one one one one];
    bar4=[four four four four];
    bar5=[five five five five];
    backing=[bar1 bar1 bar1 bar1 bar4 bar4 bar1 bar1    bar5 bar4 bar1 bar1];

    %%%%%pentatonic%%%%%
    so=sin(2*pi*196*t);
    la=sin(2*pi*220*t);
    do=sin(2*pi*261.63*t);
    re=sin(2*pi*293.66*t);
    blue=sin(2*pi*311.13*t);
    blk=sin(2*pi*0*t); %blank 

    %%%%%melody%%%%%
    melody=[so so la la do do blue blue blue blk re do do do la blue blue la ...
    la do blue re so la do blk blk re blue do re so la la so la do re blue ...
    blue blue so so la la re blue do];

    %%%%%%%%%%%%%%%
    song=[backing;melody];
    soundsc(song,fs)

播放wav文件:

MATLAB

代码语言:javascript
复制
%1、代码片段1
[fname,pname]=uigetfile('.wav','选择原始声音文件');
file=[pname,fname];
fs = 8000;
[x,fs] = wavread(file);
sound(x,fs);


%2、代码片段2
[y,Fs,bits] = wavread('jinyong.wav');   %获取音乐数据
ao = analogoutput('winsound');%建立硬件对象
addchannel(ao,[1 2]);    %创建声音输出通道
set(ao,'SampleRate',Fs)  %设置采样率
data1 =y(:,1);    %双声道
data2 =y(:,2);
putdata(ao,[data1 data2]);   %往声卡堆音乐数据
start(ao);   %输出音乐数据
stop(ao)

参考资料:

https://blog.csdn.net/weaponsun/article/details/46695255

https://blog.csdn.net/u013421629/article/details/72901677

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档