Thursday, April 23, 2015

SPTK basic operation: .wav, .raw., .short

The Speech Signal Processing Toolkit (SPTK) is a suite of speech signal processing tools for UNIX environments, e.g., LPC analysis, PARCOR analysis, LSP analysis, PARCOR synthesis filter, LSP synthesis filter, vector quantization techniques, and other extended versions of them. It is developed by Prof. Imai and Prof. Kobayashi of Tokyo Inst. of Tech, and currently maintained by Nagoya Inst. of Tech. To install SPTK in Linux and Unix based-OS is easy, download the source file, extract and do the following,

./configure
make
sudo make install

That's all installation process, it will install SPTK in /usr/local/SPTK by default.

Add SPTK path to .bashrc

Now SPTK is installed in our machine, but by default it is (SPTK command) not searchable in our shell/terminal. To make it searchable (instead of use /usr/local/SPTK/bin/command everytime), we can add the path to .bashrc. Open .bashrc with editor (vim/gedit/other) and add the following,
export PATH=$PATH:/usr/local/SPTK/bin
And it's added to our command path, check it by using "impulse -h" in terminal. If done, it will show man pages of "impulse" command.

Remove Header : Convert Wav to Raw

SPTK provide utilities to remove header file in sound recording process by converting wav files to raw files (and we can convert it back to wav file). Here is how,
wav2raw +s data.wav
In current directory, there will be new file data.raw with header file removed. Argumen +s is for short data type, you can check full argument by wav2raw -h. To convert back in wav, use "raw2wav" command.

Convert to Short

To convert data from raw, wav or other format to .short (because mainly processing in SPTK is in .short format) we use command "x2x",

x2x +s data.raw > data.short 
It will covert raw to short, you can try to change other format.

Plot Waveform


Plot waveform in SPTK

Saturday, April 18, 2015

Extent Tab-completion inside Matlab Function

Currently Matlab only has tab completion for common functions like "load", "addpath" and others (while GNU Octave can complete inside function). To mimic this tab completion in Matlab function like "wavread" and other function, we can do the following, edit Tc.xml to save our finger for typing complete filename.

Step-by-step:
  1. Edit Tc.xml by the following command:
  2. edit(fullfile(matlabroot,'toolbox/local/TC.xml'))
  3. Add function (key binding) and  FILE or DIR inside TC.xml
<binding name="wavread"       ctype="FILE"/>
If TC.xml is read only (R2013a), change the permission by using chmod,
sudo chmod a+rwx /usr/local/MATLAB/R2013a/toolbox/local/TC.xml
when your root password when prompted, it is for Unix and Linux-based OS.

It works on Matlab R2009 and 2013a and this tricks save our fingers for repetition and wrong typing.

Matlab Tab-completion

Monday, April 13, 2015

How-to: Measure Impulse Response with Aliki

Aliki is software to measure room impulse response. It's free and open source. On a dynamic system, impulse response is its output(response) when presented with a brief input signal (impulse). For room acoustic, impulse response can be used to measure acoustic characteristics like reverberation time, early decay time, later decay time and speech intelligibility.

How to measure room impulse response? Here is how, with a software called Aliki (free and open source).

Impulse response of semi-anechoic room in VibrasticLab

Installation

In Ubuntu, it is easy to install Aliki using apt-get:
sudo apt-get install aliki
It will install Aliki (gui) and its dependencies.

Step-by-step :

Sunday, April 12, 2015

Wavplot and Wavplay

Matlab has their built in function to play .wav file, but it didn't work in Unix and Linux-based OS, because the wavplay function only supported in Windows. Moreover, I want to plot waveform of .wav file in single command, so I don't need to wavread it before plot. For those two purposes, I made two shorts function namely wavplot and wavfile.

Wavplot
wavplot is simple function to plot .wav file. Why I need it? because I continuously working with .wav file, and I want to plot it directly to get information of sound file via its waveform. Here the code of wavplot function.

function wavplot(wavFile)
% wavplot(wavFile) plot waveform and spectrum of wav file
% bagus@ep.its.ac.id

if nargin>1
    fprintf('Usage: wavplot(wavFile \n');
    return;
end;

[y, fs]=wavread(wavFile);
plot(y)
end

How to use it? it is simple. If you have .wav file, for example it has name tone.wav and you are in the current directory of Matlab command window, you can directly plot it with this function,
wavplot('tone.wav')
And it will plot the wav file like the following,
Output of wavplot function

Friday, April 10, 2015

Mengetik Secara Ergonomis

Mengetik secara ergonomis bisa menjadikan kondisi nyaman dalam bekerja, serta mencegah kecelakaan kerja bagi orang yang bekerja dengan komputer. Sayangnya, hanya sedikit orang yang peduli dengan faktor ergonomis ini ketika berada di lingkungan kerja. Tak hanya itu, mengetik secara ergonomis juga membuat kita bisa mengetik secara cepat dan buta (tanpa melihat keyboards). Apple Computer, telah memberikan beberapa panduan dan tips untuk mengetik secara ergonomis yang secara khusus diterapkan untuk produk mereka (macbook) namun juga secara luas dapat dipakai pada semua komputer. Berikut ringkasannya.


Letak jari yang benar (vs yang salah) ketika mengetik

Posisi Duduk
Ada beberapa posisi duduk yang perlu diperhatikan agar kita bisa mengetik secara ergonomis. Posisi dan letak bagian tubuh seperti tangan, tinggi kursi, sandaran sangat berpengaruh terhadap kenyamanan kita saat mengetik maupun bekerja. Perhatikan beberapa gambar berikut untuk lebih jelasnya.
Posisi lengan
Tinggi kursi

Sunday, April 05, 2015

Belajar Ungkapan Bahasa Inggris [Free Book Download]

Belajar ungkapan bahasa inggris adalah salah satu dasar untuk menguasai percakapan (conversation) dalam bahasa Inggris. Berbeda dengan grammar yang formal (dan seharusnya memang begitu), belajar ungkapan bahasa inggris, yang kita sebut sebagai English Expression, terlihat lebih fleksibel dalam aturannya, bahkan kadang menabrak aturan grammar. Banyak juga istilah dalam ungkapan bahasa Inggris yang tidak kita temui di kamus, bahasa ini biasanya disebut slang.

Misalnya ungkapan seperti ini,
“I will always remember you”
Maka kita dapat menggunakan ungkapan berikut,
“You are always in my mind”
English Expressions adalah buku sederhana nan mungil yang bisa anda cetak sendiri dan praktis untuk dibawa kemana-mana. Ada 80 ungkapan dalam buku gratis dan legal ini. Anda bisa memahami arti hang loose, a thousand one job, dan masih banyak lagi. Silakan download bukunya pada link berikut, pelajari ungkapannya dan praktekkan! Jika belum cukup, anda bisa langsung kursus bahasa Inggris ke penulisnya langsung, yakni di kursus bahasa Inggris murah dan berkualitas Surabaya.

Attachment: EnglishExpressions.pdf
(if you find error in link including in writing/typing please contact me)

Saturday, April 04, 2015

Pengenalan Git: Clone, Push dan Pull

Setelah mengenal Git pada tulisan sebelumnya, saatnya kita mengenal fitur dasar alias fitur utama Git: push, pull dan clone. Sekedar mereview pada tulisan sebelumnya, setelah kita mengedit skrip kita, kemudian kita tambahkan, lalu kita beri commentar atas tambahan yang kita lakukan dan terakhir kita kirim (push) ke repository di Bitbucket atau Github.. Itu jika kita menggunakan satu komputer saja, lalu bagaimana bila kita menggunakan 2-3 komputer atau orang lain ingin mengcopy kode-kode kita dari bitbucket? Perhatikan tiga skenario pada tiga komputer di bawah ini.

Komputer 1: Edit >> add >> commit >> push
Komputer 2: Pull >> edit >> add >> commit >> push
Komputer 3: Clone

Skenario pertama (komputer 1) sudah kita lakukan pada tulisan sebelumnya. Sekarang kita berada di komputer 2, ingin mengambil kode-kode kita yang kita tulis+edit di komputer satu, kemudian kita edit/revisi lagi, dan kita kirim ke repo di Bitbukcet.

Hal pertama yang kita lakukan pada komputer 2 ini adalah mengambil kode (pull) dari repo di Bitbucket. Pertama kita inisiasi git,

mkdir coba
cd coba
git init
git remote add origin https://bagustris@bitbucket.org/bagustris/coba.git
git pull origin master

Friday, April 03, 2015

Rancang Bangun Modul STM32 dengan ChibiOS

STM32 adalah mikroprosesor low power keluarga ARM M3 cortex yang dibuat oleh STMicroelectronics. Dinamakan stm32 karena mikro ini merupakan 32bit dan low power karena tegangan operasi mikro ini hanya berkisar dari 1.8 sampai 3.6 volt. Project stm32-tf (stm32-teknik fisika) ini di-host di github dengan official repo di alamat berikut : https://github.com/mekatronik-achmadi/stm32-tf (thanks to +achmadi for the repo).

Modul STM32-TF
Repo di Github tersebut berisi komponen yang dibutuhkan, desain PCB, ChibiOS dan contoh-contoh program. ChibiOS adalah real-time OS yang digunakan untuk embedded system dan mendukung banyak mikroprosesor termasuk stm32. Dengan ChibiOS, kita bisa membangun program-program untuk akuisisi data, control system ataupun pemrosesan sinyal. Selain ChibiOS, modul stm32 ini juga 'mencuri' dari perangkat lunak open source lainnya seperti stm32flash, compiler gcc-arm-none-eabi dan masih banyak lagi. Berikut adalah list hardware, software, fitur dan demo untuk membuat, mengcompile dan mengupload program ke modul stm32.

Daftar Komponen (hardware)

Related Posts Plugin for WordPress, Blogger...