How to play dial tones based on user input?

14 ビュー (過去 30 日間)
faith
faith 2020 年 5 月 3 日
回答済み: Vinai Datta Thatiparthi 2020 年 5 月 5 日
My goal is to have dial tones be played for 1 second each with 1 second pauses when the user inputs 10 numbers. I’ve already assigned the tones to variables num1,num2…. I am struggling on how identify the number that is inputted and assign it to the sound and play it with the pauses
clc;clear;
%sound for 1
fs=8192;
T=.5;
t=0:(1/fs):T;
y1=cos(2*pi*1209*t)+cos(2*pi*697*t);
%sound for 2
fs=8192;
T=.5;
t=0:(1/fs):T;
y2=cos(2*pi*1336*t)+cos(2*pi*697*t);
%sound for 3
fs=8192;
T=.5;
t=0:(1/fs):T;
y3=cos(2*pi*1477*t)+cos(2*pi*697*t);
%sound for 4
fs=8192;
T=.5;
t=0:(1/fs):T;
y4=cos(2*pi*1209*t)+cos(2*pi*770*t);
%sound for 5
fs=8192;
T=.5;
t=0:(1/fs):T;
y5=cos(2*pi*1336*t)+cos(2*pi*770*t);
%sound for 6
fs=8192;
T=.5;
t=0:(1/fs):T;
y6=cos(2*pi*1477*t)+cos(2*pi*770*t);
%sound for 7
fs=8192;
T=.5;
t=0:(1/fs):T;
y7=cos(2*pi*1209*t)+cos(2*pi*852*t);
%sound for 8
fs=8192;
T=.5;
t=0:(1/fs):T;
y8=cos(2*pi*1336*t)+cos(2*pi*852*t);
%sound for 9
fs=8192;
T=.5;
t=0:(1/fs):T;
y9=cos(2*pi*1477*t)+cos(2*pi*852*t);
%sound for 0
fs=8192;
T=.5;
t=0:(1/fs):T;
y0=cos(2*pi*1336*t)+cos(2*pi*941*t);
num1=audioplayer(y1,fs);
num2=audioplayer(y2,fs);
num3=audioplayer(y3,fs);
num4=audioplayer(y4,fs);
num5=audioplayer(y5,fs);
num6=audioplayer(y6,fs);
num7=audioplayer(y7,fs);
num8=audioplayer(y8,fs);
num9=audioplayer(y9,fs);
num0=audioplayer(y0,fs);
for ii = 1:10
x(ii) = input('Input a number: ');
end
tt= num2cell(x);
[a,b,c,d,e,f,g,h,i,j] = deal(tt{:});

回答 (1 件)

Vinai Datta Thatiparthi
Vinai Datta Thatiparthi 2020 年 5 月 5 日
Hey,
A few ideas that could help you:
  • A simple way would be to use multiple if-else statements or switch cases within the for loop and execute your statements within these if-else/switch statements
  • You could also try the map option in MATLAB
  • Use the function pause to produce pauses between every statement execution
  • Further, since the first 3 statements for every case (fs, T & t) are the same across all cases, you don't have to write them every time. Having these lines once outside the for loop should suffice
Hope this helps!

カテゴリ

Help Center および File ExchangeAudio and Video Data についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by