Forum Replies Created
-
AuthorPosts
-
You are correct: “bins are then the discrete frequencies of the basis functions” – they are indexed by k in the DFT equation in the notebooks.
The DFT bins are determined only by the duration of the analysis frame and the sampling rate. They do not and cannot depend on the signal (e.g., on its fundamental frequency), because the DFT works for any signal and gives the same frequency resolution in all cases (for a particular sampling rate and analysis frame duration).
You correctly state that, for a 1 s analysis frame duration, the lowest frequency bin will be at 1 Hz. (We don’t even need to know the sampling rate to work this out.)
You are also correct in stating that when analysing a signal with energy at an “awkward” frequency (i.e., not an exact bin frequency), we will get leakage across several adjacent bins around that frequency.
Your final point is also correct: to construct a single impulse, we need to sum together all basis functions with equal amplitudes. The spectrum is flat, and there are no harmonics (because the single impulse is not a periodic signal).
Overall, your understanding looks pretty good!
Just to check – you posted this under “Remote Desktop” but you are actually using the Virtual Machine?
To solve the sound issue, try this and report back.
Yes, you’ve got it. k is indexing frequency – sometimes we say it is the DFT “bin”.
When plotting X[k] the axis will run from 0 to K (not from k to K). We could label that axis with the integers 0 to K (some of the notebooks do that), or we could convert k to Hz and label the axis with frequency.
How do we convert the integer k into a frequency in Hz ?
Your command
festival> (set! myutt "COVID19 is very dangerous")
sets the variable
myutt
to a string, which is not what you need to do.myutt
should be a FestivalUtterance
object, so you need this (as in the instructions):festival> (set! myutt (Utterance Text "COVID19 is very dangerous"))
which creates a new
Utterance
object and stores it in the variablemyutt
.Are you connected to the VPN (on the host computer, i.e., your personal computer)?
October 12, 2020 at 09:18 in reply to: Clarify the Difference between the Filter and Output Response #12337The magnitude spectrum is not exactly the same thing as the spectral envelope.
The magnitude spectrum is something that can be obtained for any signal, such as speech, by taking the DFT of the signal (and discarding phase).
Looking at the magnitude spectrum of speech, we see two very different properties combined. One is the overall shape – the spectral envelope. The other is the fine structure.
For speech, the frequency response of the vocal tract filter is responsible for creating the spectral envelope of the speech signal.
For voiced speech, the fine structure will be a regular series of harmonics at multiples of F0, and this is created by the vocal folds.
Did you copy the files using
rsync
?Try rebooting the host machine too.
Sometimes the VM loses the network connection to the host computer. Can you reach any websites using a web browser in the VM? If not, then the network connection is definitely the problem.
First thing to try: restart the VM.
Let us know if this solves the problem, or if you need more help.
In the Linux VM, open Applications – System Tools – Settings (which you have open in your screenshot).
In Settings, look under Devices to find Displays, where you can change the resolution.
Report back to let others know if this works, or to let me know you need more help..
Did you complete Module 0, and was the sound working then?
Try Virtual Machine – Settings – Add Device (it’s a button on the Settings window, top right) and see if you can add a Sound Card. See screenshots attached.
You may need to do this when the virtual machine is shutdown, not running.
Attachments:
You must be logged in to view attached files.For the main part of the assignment, you’ll be loading a configuration file called
config.scm
every time you start Festival. This loads a better-sounding voice.You can add those commands to the end of
config.scm
and they will be run as you start Festival.Until then, you could create a file called
startup.scm
, put those two commands in that file, then start Festival like this:$ festival startup.scm
Try changing the method that Festival uses to play audio:
festival> (Parameter.set 'Audio_Method 'Audio_Command) festival> (Parameter.set 'Audio_Command "play -t raw -r 16000 -b 16 -c 1 -e signed-integer $FILE") festival> (SayText "hello world")
which tells Festival to save the audio to a file, then use
play
(i.e.,sox
) to play that file. So, if playing audio on the command line works, this should work.I’ll start you off with this and you try to complete it – I’m going to use square brackets to index everything to emphasise that we are dealing with discrete (= digital) signals only, and to match the notation in the
sp-m1-4-discrete-fourier-transform
notebook.x[n] is the waveform. n is indexing time. To plot x[n], we place n on the horizontal axis and label it “time (samples)” then plot the value of x[n] at each value of n. We have drawn the waveform.
X[k] is the Discrete Fourier Transform of x[n]. k is indexing BLANK. To plot X[k], we place BLANK on the horizontal axis and label it “BLANK” then plot the value of X[k] at each value of k. We have drawn the BLANK.
Can you fill in some of the BLANKs?
-
AuthorPosts