フィルターのクリア

Small variation in amplitude

3 ビュー (過去 30 日間)
Farideh Jalali
Farideh Jalali 2012 年 7 月 29 日
Does anybody can tell me plz,how can I make change in the amplitude of speech signal ?I need to make small variation in the amplitude.I am working in synthesize speech ,I would like to change the amplitude of the speech signal signal.

採用された回答

Wayne King
Wayne King 2012 年 7 月 29 日
編集済み: Wayne King 2012 年 7 月 29 日
You can amplitude modulate the different sections.
For example, I'll amplitude modulate from 1 to 3 seconds in the following signal
Fs = 1000;
t = 0:1/Fs:5-(1/Fs);
x = cos(2*pi*100*t);
x(1000:3000) = x(1000:3000).*(1+0.2*cos(2*pi*10*t(1:2001)));
Vary the modulation depth (I've used 0.2 here) and the modulation frequency (here 10 Hz) to get a realistic variation in amplitude.
The modulation depth should be between 0 and 1, I'm guessing you want a small value like 0.1, 0.2.
The modulation frequency should probably be a low frequency as well maybe 5 Hz or less.
  1 件のコメント
Farideh Jalali
Farideh Jalali 2012 年 7 月 30 日
編集済み: Walter Roberson 2012 年 7 月 30 日
This is very good idea but the major problem is that I cant consider the the Cos model as excitation for my speech synthesize model.I tried to modified the codes as following but still I cant hear any variation in the amplitude of voice signal.
fs=10000; % sampling frequency (Hz)
NS = 3*fs; % Number of samples to be generated (for 3 seconds)
pp=100
fm = 10;
fc = fs/pp ;
for m=1:NS,
y(m)=cos(2*pi*(fc/fs)*m).*(1+0.2*cos(2*pi*(fm/fs)*m));
end;
figure (1); plot (y(1:3600));
[Pks,Locs] = findpeaks (y, 'minpeakheight', 0.7);
impEx = zeros (1,NS);
for m=1:length (Locs), impEx (Locs (m)) = 1; end;
figure (66),plot (impEx(1:800) );

サインインしてコメントする。

その他の回答 (2 件)

Wayne King
Wayne King 2012 年 7 月 29 日
編集済み: Wayne King 2012 年 7 月 29 日
Just multiply the signal by a constant between 0 and 1
t = linspace(0,1,1000);
x = cos(2*pi*100*t)+sin(2*pi*100*(t-pi/4));
% scale the amplitude by 1/5
y = 0.2*x;
plot(t,x), hold on;
plot(t,y,'r','linewidth',2)
If you want to add just a small variation, then multiply by a factor just slightly over or under 1.
  1 件のコメント
Farideh Jalali
Farideh Jalali 2012 年 7 月 29 日
編集済み: Farideh Jalali 2012 年 7 月 30 日
Thank you very much indeed.When I am listening to the voice,I should hear variation in different time of voice.With your method I only can see changes in the amplitude of the whole voice signal.For example,something ,I expect is :when you listen to the patient voice which is trying to say /a/ in 3 second.you can hear amplitude variation in each second of her voice.I have to make these small variations in my synthesize speech.In each part of voice these variation should be small and can be different from other section of voice.Do you have any suggestion for Am demodulation?

サインインしてコメントする。


Farideh Jalali
Farideh Jalali 2012 年 7 月 30 日
This is very good idea but the major problem is that I cant consider the the Cos model as excitation for my speech synthesize model.I tried to modified the codes as following but still I cant hear any variation in the amplitude of voice signal.
fs=10000; % sampling frequency (Hz) NS = 3*fs; % Number of samples to be generated (for 3 seconds) pp=100 fm = 10; fc = fs/pp ;
for m=1:NS, y(m)=cos(2*pi*(fc/fs)*m).*(1+0.2*cos(2*pi*(fm/fs)*m));
end; figure (1); plot (y(1:3600));
[Pks,Locs] = findpeaks (y, 'minpeakheight', 0.7); impEx = zeros (1,NS); for m=1:length (Locs), impEx (Locs (m)) = 1; end; figure (66),plot (impEx(1:800) );

カテゴリ

Help Center および File ExchangeAudio Processing Algorithm Design についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by