An extended TSP (Time Stretched Pulse) that enables interactive and real-time measurement of the linear time-invariant, the non-linear time-invariant, and random and time varying responses simultaneously. This is the substantial revision of FVN and related tools. I will stop updating FVN.
All components are uploaded. Type "realTimeTester" to start the application. Supporting materials will be ready soon.
Kawahara, H. and Yatabe, K.: Cascaded all-pass filterswith randomized center frequencies and phase polarity for acoustic and speech measurement and data augmentation,arXiv:2010.13185(2020) (Accepted: ICASSP2021). (Link to PDF)
We introduce a new member of TSP (Time Stretched Pulse) for acoustic and speech measurement infrastructure, based on a simple all-pass filter and systematic randomization. This new infrastructure fundamentally upgrades our previous measurement procedure, which enables simultaneous measurement of multiple attributes, including non-linear ones without requiring extra filtering nor post-processing. Our new proposal establishes a theoretically solid, flexible, and extensible foundation in acoustic measurement. Moreover, it is general enough to provide versatile research tools for other fields, such as biological signal analysis. We illustrate using acoustic measurements and data augmentation as representative examples among various prospective applications. We open-sourced MATLAB implementation. It consists of an interactive and real-time acoustic tool, MATLAB functions, and supporting materials. Recently we introduced an interactive and real-time tool for measureing voice fundamental frequency response to auditory test signal with frequency modulation.
Folder "fmResponseTester" consists of the tester. The following command tests MATLAB's pitch extractor function "pitch.m" using a test signal with 240 Hz pitch and 1 cent modulation depth. The output reports (graphics and MATLAB data) are stored on the current working directory. The last argument "@pitchNCF" is a function pointer to the interface program (user has to write) for the target pitch extractor (a MATLAB function "pitch.m").
output = fmTransfTestPeriodicRevSNR(targetFo, fMcent, @pitchNCF, 'pink', snr)
You can also check @pitchYANG. It tests the pitch extractor for yang_STRAIGHT. It provides better pitch trajectory than using NCF in MATLAB.
Hideki Kawahara, Kohei Yatabe, Ken-Ichi Sakakibara, Tatsuya Kitamura, Hideki Banno, Masanori Morise: Measuring pitch extractors' response to frequency-modulated multi-component signals, arXiv:2204.00911 (2022). (Link to arXiv
Hideki Kawahara, Kohei Yatabe, Ken-Ichi Sakakibara, Tatsuya Kitamura, Hideki Banno, Masanori Morise: An objective test tool for pitch extractors' response attributes, arXiv:2204.00902 (2022). (Link to arXiv
Hideki Kawahara, Kohei Yatabe, Ken-Ichi Sakakibara, Tatsuya Kitamura, Hideki Banno, Masanori Morise: Objective measurement of pitch extractors' responses to frequency modulated sounds and two reference pitch extraction methods for analyzing voice pitch responses to auditory stimulation, arXiv:2111.03629 (2021). (Link to PDF)
Note that fmTransfTestGaussN is a new replacement of fmTransfTestGauss
Dwonload the directory "auditoryResponseTester." Then, try "auditoryResponseTester" to invoke the tool.
English and Japanese versions are in doc folder.
Hideki Kawahara, Toshie Matsui, Kohei Yatabe, Ken-Ichi Sakakibara, Minoru Tsuzaki, Masanori Morise, Toshio Irino: Mixture of orthogonal sequences made from extended time-stretched pulses enables measurement of involuntary voice fundamental frequency response to pitch perturbation, arXiv:2104.01444 (2021). (Link to PDF)
The following method is adopted for CAPRICEP and build in this tool.
Hideki Kawahara; Ken-Ichi Sakakibara; Mitsunori Mizumachi; Masanori Morise; Hideki Banno: Simultaneous measurement of time-invariant linear and nonlinear, and random and extra responses using frequency domain variant of velvet noise, Proc. APSIPA ASC, pp.174-183 (2020). (Link to PDF)
Try "realTimeTester" to invoke the tool.
Use "capResultReporter" for visualize and report the measurement results
Try:
app = struct;
app.CommonSignal = struct;
devices = getAudioDevices(audioPlayerRecorder);
[deviceID,tf] = listdlg('ListString',devices, 'SelectionMode','single');
if tf
app.CommonSignal.DeviceName = devices{deviceID};
app.DeviceLabel.Text = devices{deviceID};
fs = 44100;
app.CommonSignal.Reader = audioPlayerRecorder(fs,"RecorderChannelMapping", 1, ...
"BitDepth", "24-bit integer", "Device", devices{deviceID});
app.DriverLabel.Text = 'simultaneousIO'; %get(app.CommonSignal.Reader,"Driver");
tResponse = 400;
nRepetition = 30;
outChannel = 'L-ch';
option.calibrationConst = 200;
inChannel = 1;
option.DeviceName = devices{deviceID};
analysisStr = capricepResponseTest(fs, tResponse, nRepetition, ...
outChannel, inChannel, 'acoustic_system', option);
analysisStrCore = struct;
analysisStrCore.yRecorded = analysisStr.yRecorded;
analysisStrCore.pinkLPC = analysisStr.pinkLPC;
analysisStrCore.fs = fs;
analysisStrCore.tResponse = analysisStr.tResponse;
analysisStrCore.nRepetition = analysisStr.nRepetition;
analysisStrCore.outChannel = analysisStr.outChannel;
analysisStrCore.numChannels = analysisStr.numChannels;
analysisStrCore.selectedChannels = analysisStr.selectedChannels;
analysisStrCore.lAeq = analysisStr.lAeq;
analysisStrCore.calibrationConst = analysisStr.calibrationConst;
app.CommonSignal.outPath = ".";
fname = "test";
save(app.CommonSignal.outPath + "/" + fname, "analysisStrCore");
tmp = capResultReporter([char(app.CommonSignal.outPath) '/' char(fname)], 'NONE');
end
For usual room, tResponse = 400; provides better result in the low-frequency end. 800 is better for a classroom.
The following files sound pervcptually indistinguishable (at least for me).
Please refer to Fig.5 of the reference. Please download and check.
capricepWorstSNRminus1dB.wav
capricepBestSNR6dB.wav
originalLevelAdjusted.wav
These installers are still experimental (17 Jan. 2021);
Link to installer Please download this folder as a whole. Then, execute as the installer application.
Link to installer Please click this link. Then execute the downloaded installer application.