[Speex-dev] Determining length of speex file speech

Björn Thalheim s9268716 at mail.inf.tu-dresden.de
Tue May 16 06:29:47 PDT 2006


Hello,

I would like to run a script over a speex file which determines, how
long the speech contained in the speex file is.
So I run through the ogg file, skip the first two ogg _pages_ (speex
header and comment header, both contain IMHO only 1 ogg _packet_), and
then count in any ogg page the number of the ogg _frames_ (which, unless
I used -nframes while encoding, which I did not), and multiply this with
.02 (20 milliseconds).
I did this by hand, for example on the file I send yesterday when asking
about the noise, so the output of the program is:

$ readspx spfe49_1-small.spx
speex header
Version:1.1.12
rate:44100
mode:2
mode_bitstream_version:4
nb_channels:2
bitrate:-1
frame_size:640
vbr:0
frames_per_packet:1
extra_headers:0
Page #2: 1 packets.
Page #3: 45 packets.
Page #4: 45 packets.
Page #5: 45 packets.
Page #6: 45 packets.
Page #7: 45 packets.
Page #8: 45 packets.
Pages: 8
Packets: 272

Calculating things per hand here 6*45 speex frames, so the speech length
should be 5.4 seconds. Unfortunately this is overestimated:

$ time speexdec spfe49_1-small.spx
Decoding 44100 Hz audio using ultra-wideband (sub-band CELP) mode (stereo)
Encoded with Speex 1.1.12

real    0m3.992s
user    0m0.112s
sys     0m0.020s

So my questions are: What does the "frame_size: 640" mean (the
information was simply read out with speex_header->frame_size).
Why does my algorithm for calculating the length of the speech in a
speex file not work?
How is the number of ogg _packets_ per ogg _frame_ set by the encoder
(commandline, file-based)?

Ciao,

Björn


-- 
Q:	What's the difference betweeen USL and the Graf Zeppelin?
A:	The Graf Zeppelin represented cutting edge technology for its time.

-- 
Important! Please recognize my new GPG Public Key!
                 Björn Thalheim
gpg fingerprint: 2F22 AAEB 1818 1548 EC78  1AE8 9D2E FCB4 0980 28CC
   download key: wget http://www.ifsr.de/~bjoern/gpg/public_key.asc
       See also: http://www.ifsr.de/~bjoern/gpg/key.html

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : http://lists.xiph.org/pipermail/speex-dev/attachments/20060516/a08761d5/signature.pgp


More information about the Speex-dev mailing list