Voice File Interchange Protocol (VFIP)
A header format for exchanging speech files between different systems.
Reynolds, J.K., Gillman, R., Brackenridge, W.A., Witkowski, A., and J. Postel, "Voice File Interchange Protocol (VFIP)", RFC 978, DOI 10.17487/RFC0978, February 1986, <https://www.rfc-editor.org/info/rfc978>.
@misc{rfc978,
series = {Request for Comments},
number = 978,
howpublished = {RFC 978},
publisher = {RFC Editor},
doi = {10.17487/RFC0978},
url = {https://www.rfc-editor.org/info/rfc978},
author = {J.K. Reynolds and R. Gillman and W.A. Brackenridge and A. Witkowski and J. Postel},
title = {{Voice File Interchange Protocol (VFIP)}},
pagetotal = 5,
year = 1986,
month = feb,
} RFC text
Contents
Network Working Group J. K. Reynolds (ISI)
Request for Comments: 978 R. Gillmann (Inner Loop)
W. A. Brackenridge (Alembic)
A. Witkowski (Inner Loop)
J. Postel (ISI)
February 1986
VOICE FILE INTERCHANGE PROTOCOL (VFIP)
STATUS OF THIS MEMO
This memo describes a proposed voice file interchange format for use
in the ARPA-Internet community. Suggestions for improvement are
encouraged. Distribution of this memo is unlimited.
1. INTRODUCTION
The purpose of the Voice File Interchange Protocol (VFIP) is to
permit the interchange of various types of speech files between
different systems. Currently, there are many different types of
voice implementations, but no specific standard has been set with an
eye towards compatability between these systems. With the increasing
interest and development of voice, specifically in Multimedia Mail,
there is an increased need to include standardized speech into a
common data structure.
The Voice File Interchange Protocol defines a header to describe the
voice data. The 18-byte header contains the identifier, the header
version number, the header length, a DTMF mask for Touch-Tones, the
recording rate in bits per second, the total time in deci-seconds
(tenths of a second), and the encoding/recording method (see
Figure 1).
2. THE VOICE FILE INTERCHANGE PROTOCOL HEADER
The Voice File Interchange Protocol header is organized as follows:
2.1 The Header Version Number
The version number is 1-byte. This first version is number one.
2.2 The Header Length
The length is a 1-byte field indicating the length of the entire
header in bytes. For this first version, the length is
18 (bytes).
2.3 The DTMF Mask
This field describes what is known about DTMF Touch-Tones in the
data. The field consists of a 16 flag bits which indicate what is
known about particular DTMF tones. The 16 possible DTMF tones, in
order, are: 0 1 2 3 4 5 6 7 8 9 # * A B C D. The low order bit
of the field is tone 0.
A 1-bit signifies that the corresponding tone is guaranteed NOT to
be in the speech file. A 0-bit signifies that it may or may not
be in the speech file. Therefore, a field of 16 zeros denotes
that nothing is known about the tones. A field of 16 ones denotes
that there are no tones in the file.
2.4 Recording Rate
The recording rate is a 32-bit field and is the approximate rate
in bits/second of the method used to record the speech. For
variable rate methods, this may be very approximate.
2.5 Total Time
A 32-bit number indicating the total time of the recording in
deci-seconds. For example, 600 indicates 1 minute of speech.
2.6 Methods of Encoding/Recording
This 6-byte ASCII field indicates the method of
encoding/recording. Names shorter than six characters are padded
out to the right with blanks (the ASCII space character, code 32
decimal). For comparisons, the names are case insensitive.
Some known methods of Encoding/Recording are:
TI - The Texas Instruments card for the IBM PC [5].
IBM - PC Voice Communications Options.
NVP-1 and NVP-2 - Network Voice Protocol [1,2].
COMPUT - Computalker card for the IBM PC [4].
3. SUMMARY
This 18-byte header will permit interchange of speech files between
different systems, as well as facilitate automatic conversion between
formats. The header does not have to be prepended to the speech file
proper; it may be in the form of a separate associated file, if that
is more convenient.
<------------16-bits------------>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| -DTMF- |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| -Recording- |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| -Rate- |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| -Total- |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| -Time- |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| M | E |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| T | H |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| O | D |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1
4. EXAMPLES
Example 1 is for one minute of 2400 bps NVP-2 speech. Nothing is
known about DTMF tones in the data.
<------------16-bits------------>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 | 18 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2400 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 600 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| N | V |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| P | - |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 2 | <sp> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Example 1
Example 2 shows the header for 10 seconds of 1200 bps TI speech, with
none of the DTMF tone 0-9 in the data, but no information about
tones *, #, A-D.
<------------16-bits------------>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1 | 18 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1023 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 1200 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 100 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| T | I |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| <sp> | <sp> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| <sp> | <sp> |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Example 2
REFERENCES
[1] Cohen, Danny, "Specifications for the Network Voice Protocol
(NVP)", RFC 741 (NIC 42444), USC/Information Sciences Institute,
January 1976.
[2] Cohen, Danny, "A Network Voice Protocol (NVP-II)",
USC/Information Sciences Institute, April 1981.
[3] O'Leary, G. C., "Local Access Area Facilities for Packet Voice",
MIT/LL, October 1980.
[4] Computalker, "Compu Phone for the IBM PC/XT", Santa Monica,
California, August 1985.
[5] Texas Instruments, Inc., "The TI Speech Application Tool Kit
Guide", TI Part #2232384-1, May 1985.
ISO Plain Language
On this page
§1Describing Different Speech Formats
The Voice File Interchange Protocol (VFIP) aims to let different systems exchange speech files. The RFC says there was growing interest in voice, including multimedia mail, but no specific standard focused on compatibility among voice implementations.
VFIP defines a header that describes voice data. The description can help another system interpret the file and support conversion between formats.
Different systems need a shared description to interpret each other's speech files. VFIP proposes a header that carries that description.
§2Fields in the VFIP Header
The header is 18 bytes for version one. It contains a one-byte version number and a one-byte header length, followed by a 16-bit DTMF mask, a 32-bit approximate recording rate, a 32-bit total time in deci-seconds, and a six-byte encoding or recording method name.
In the DTMF mask, a set bit guarantees that its corresponding tone is absent; a clear bit means the tone may or may not occur. The method name is compared without regard to letter case and shorter names are padded with spaces.
The header records how the speech was encoded, its approximate data rate, its duration, and what is known about touch-tones. The DTMF bits say which tones are definitely absent.
§3How the Header Relates to Speech Data
VFIP's header does not have to be placed at the start of the speech file. It may instead be kept in a separate file associated with the speech data.
The RFC illustrates the format with a one-minute, 2400-bits-per-second NVP-2 recording and a ten-second, 1200-bits-per-second TI recording. In the second example, the DTMF mask guarantees that tones 0 through 9 are absent but does not describe the other tones.
The description can be stored alongside the audio or in a separate associated file. The examples show how the header records a file's method, rate, duration, and known tones.