Hebrew Isolated Digits Database Version 01 - HID_Vs01
1. General Description
The Hebrew Isolated Digits database (HID) is part of the Hebrew Speech Database (HSD) designed as an infrastructure for developing and evaluating Hebrew Speech Recognition Systems.
The HID_Vs 01 organized in two sub-directories: MALE, with 87 male speakers, giving between 1 to 172 repetitions per person with a total of 3896 repetitions.. 17 males gave 60 to 172 repetitions. The FEMALE sub-directory is with 10 female speakers, giving between 1 to 19 repetitions per person with a total of 89 repetitions..
2. Recording Environment
The speech is sampled in an acoustic chamber. The signal to noise ratio is on the order of 45db.
The signal acquisition was conducted in sessions. The speaker faced a screen, on which a number (in Hebrew writing) appeared. The speaker was asked to utter the number. In each session, ten isolated digits, in a random order were uttered. Each file, therefore contains ten isolated feminine words, randomly selected from the table. The header lists the sequence of the digits in the file. The digits are separated by means of a clear sharp marker. The marker between each two words consists of three samples having the constant value. Auxiliary programs are provided for reading the header and separating the digits.
Structure of the file
The signal was recorded with sampling frequency of 16 KHz with 12 bits resolution (format “short” or 16 bit - “word”).
Each file contains the header and ten isolated words. The header lists the sequence of words in the file. The words are separated by means of a clear marker.
The header needs 1024 bytes (512 words).
0 511 512 n-1
header / word1 | word2 | ………… ……… | word10M M M
M – marker, n - number of samples.
Word list
The header lists the sequence of words in the file and the according codes from the table.
code / Feminine word / code / male word0 / 0. אפס / 1 / 1. אפס
2 / אחד / 3 / 2. אחת
4 / שתים / 5 / 3. שנים
6 / שלוש / 7 / 4. שלושה
8 / ארבע / 9 / 5. ארבעה
10 / חמש / 11 / 6. חמישה
12 / 7. שש / 13 / 8. שישה
14 / 9. שבע / 15 / 10. שבעה
16 / שמונה / 17 / 11. שמונה
18 / 12. תשע / 19 / תשעה
Auxiliary Programs
1. Program R_HEAD.EXE - reader information from the header
- to read the header of the file,
- to know random order uttered words.
INSTRUCTION:
In WINDOWS: First, make shortcut to the program. After you have the shortcut drag the file you want to read header to the shortcut, the header will appear in the NOTEPAD.
ATTENTION! Set Hebrew fonts to read uttered words in NOTEPAD.
(Start -> Control Panel -> Regional and Language Options -> Advanced -> select HEBREW)
2. Program SEPARATE.EXE - for separation of the isolated sequences according to the endpoints marking.
- to separate file with ten isolated words in the random order ######.ext to 10
files with one uttered word : => ######_N.ext, where N=0,1,2,...9
INSTRUCTION :
In DOS : > separate <filename.ext>
where
separate - is the name of this program (SEPARATE.EXE)
<filename.ext> - name of the file from the database you want to separate to 10 files
In WINDOWS: First, make shortcut to the program. After you have the shortcut
drag the file you want to separate to the shortcut, the separated files will appear in
the directory of the source file.
The files that will be created will be of the form: filename_#.ext
where # is the digit that represents the digit word
( Example: word "five" will be in => filename_5.ext )
OR where # is the number that represents the serial number of the word
from the words table
( Example: word "radio" will be in => filename_20.ext )
3. To play use program CoolEdit ( select sampling frequency, set mono and format 16 bit). Don't remember normalize amplitude and remove DC.
4. To change format use program CoolEdit (don't forget to cut header, 512 samples at the beginning).
5. To read, plot and play the file from Matlab use the PLOTPLAY.M function:
function signal=plotplay (file , Fsampling , header)
% function signal=plotplay (file , Fsampling , [header] )
% to load, plot and play SPL database file
% file -> name of file, for example 'namefile21.ime'
% Fsampling -> sampling frequency in Hz, for example 16000
% header - if exists - file with header (separated file);
%
% Example:
% s=plotplay( 'namefile21.ime' , 16000 , 1 ); - file with header
% s=plotplay( 'namefile21_3.ime ', 16000 ); - file without header
% Ben Gurion University, Signal Processing Laboratory
header=0;
% exist header?
if nargin==3
header=1;
end
fid = fopen ( file, 'rb');
signal = fread ( fid , 'short' );
fclose(fid);
% cut header
if header==1
signal=signal(512:end);
end
% delete DC
signal = signal - mean(signal);
% plot signal
plot(signal)
title(['Database file: ' file])
xlabel(['Samples, Sampling frequency ' Fsampling ' Hz'])
% play unnormalize signal
soundsc(signal,Fsampling)
%------
% to normalize signal, use :
% signal=signal/(max(abs(signal)));
% sound(signal,Fsampling);
%------