Кратко

  • RFC 978 предложил 18-байтный заголовок для обмена речевыми файлами между разными системами. Он содержал способ кодирования, примерную скорость, длительность и маску телефонных тонов.
  • В маске DTMF единица гарантировала отсутствие соответствующего тона. Ноль оставлял вопрос открытым: тон мог быть, а мог и не быть.

Посылка доставлена без потерь, а получатель не знает, как её воспроизвести. С голосовыми файлами в феврале 1986 года это был вполне технический вопрос. J.K. Reynolds и четверо коллег предложили Voice File Interchange Protocol: прикрепить к записи паспорт длиной 18 байтов. Самая смелая запись в паспорте описывала вовсе не услышанное, а то, чего в записи точно нет.

Способы записи речи различались, интерес к мультимедийной почте рос. Одни и те же доставленные байты без описания формата мало помогали чужой машине. Первый байт заголовка называл версию, второй — его длину; в первой версии она равнялась 18. Поля по 32 бита указывали примерную скорость в битах за секунду и общую длительность в десятых долях секунды. Шесть байтов ASCII называли способ кодирования или записи. Короткие имена дополняли справа пробелами и сравнивали без учёта регистра. Так у принимающей системы появлялся ориентир для возможного преобразования.

В середине находилась 16-битная маска DTMF. Её позиции соответствовали десяти цифрам телефонной клавиатуры, звёздочке, решётке и A–D. Здесь легко прочесть смысл наоборот. Единица означает: данного тона в файле гарантированно нет. Ноль означает только отсутствие сведений. Все нули ничего не исключают; все единицы исключают все шестнадцать тонов. Поставленная галочка в этом протоколе — свидетельство отсутствия, а не находки.

Два примера в RFC проверяют понимание. Минута речи NVP-2 со скоростью 2400 бит в секунду несёт нулевую маску: о тонах ничего определённого. Десять секунд записи TI при 1200 бит в секунду несут значение 1023. Десять младших битов равны единице, поэтому тоны цифр от нуля до девяти исключены. О шести оставшихся тонах сведений нет. Число 1023 сообщает не о десяти услышанных сигналах, а о десяти гарантированных пропусках.

Заголовок разрешалось хранить в отдельном связанном файле, а не перед самими звуковыми данными. Паспорт должен был остаться при своей записи. Карточка редакции RFC датирует предложение февралем 1986 года. Авторы надеялись облегчить автоматическое преобразование, но не вкладывали преобразователь в 18 байтов. Они сделали более тонкую вещь: перенесли между системами точное знание вместе с честно сохранённым незнанием. Голос приехал с документом, в котором нашлось место и доказанной тишине.