2.1.6 Speech Files:
The Sof Format
An Sof file is nothing more than an index, which provides
information about the location of each object stored in the file, and
the corresponding object data. Sof transparently supports
two basic storage formats: text (useful for building human readable
files such as parameter files) and binary (useful for sampled data).
Sof also transparently converts binary data between different
architectures by performing the appropriate byte transformations as
needed.
Sof is used by all data objects in the ISIP environment to unify
and simplify I/O. An index is maintained pointing to all objects within
the file, but all data is left on the disk until needed. Sof deals with
both text and binary files. Binary files inherently handle machine
architecture differences with automatic byte transformations. User input
parameter files in the ISIP environment are text Sof files, but binary
mode is typically used for large quantities of data for the obvious
efficiency gains. Since Sof is at the base of all ISIP software, it has
to be very efficient. To accomplish efficiency, the objects are stored
in a binary tree and a symbol table is used to hold the object class
names.
|
|
An Sof text file is a fairly simple format that consists of object
names and tags, followed by the object data. An example of
such a file can be viewed by clicking on
Sof text file.
At the top of the file, you will see an line:
that identifies the version of the software and the type of file.
Beyond that, objects are identified through their name and tag,
delimited by "@" (which is user-definable). In this case, we
have four objects:
Float,
VectorFloat,
VectorLong,
and
AudioFile.
Each of these objects has been written to this file using a text formatting.
This format is inefficient for binary data, such as audio data, but
extremely convenient for representing files that contain configuration
of parameter information.
The contents of each object is explained in detail in our
foundation class documentation.
Binary files are somewhat more complicated and consist of three
parts. An example of a complete Sof file is shown below:
First, there is a header
that contains various fixed format information about the format
and location of key structural information in the file.
Next, there are the objects themselves - data written in a binary
format defined by each class.
Finally, there is an object index that
contains the names and locations of all objects in the file.
For more information about Sof files, see our
on-line documentation.
|