Показано с 1 по 9 из 9

Тема: Преобразовать xls файл в wav

  1. #1
    Старый знакомый
    Автор темы
    Аватар для Анатоль
    Регистрация
    02.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    832

    По умолчанию Преобразовать xls файл в wav

    Задаю в EXEL таблицу с целью создания звукового файла.
    Расскажите, как ?
    Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает

  2. #2
    Завсегдатай Аватар для Ортхэннер
    Регистрация
    15.09.2004
    Адрес
    Пермь
    Возраст
    34
    Сообщений
    3,182

    По умолчанию Re: Преобразовать xls файл в wav

    Делал я "научную работу" в 11 классе, частью которой было обратное преобразование.
    Мне за нее даже награду "нациоральное достояние" на всерос конференции под масквой дали
    Только зачем именно такое преобразование может быть нужно, не совсем ясно.

  3. #3
    Старый знакомый
    Автор темы
    Аватар для Анатоль
    Регистрация
    02.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    832

    По умолчанию Re: Преобразовать xls файл в wav

    Обратное тоже было бы любопытно, а мне нужно зондирующий импульс хитрой формы , в редакторе ручками не нарисовать.
    Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает

  4. #4
    Частый гость Аватар для Eats
    Регистрация
    05.01.2008
    Адрес
    St.Petersburg
    Возраст
    56
    Сообщений
    364

    По умолчанию Re: Преобразовать xls файл в wav

    Я думаю, с помощью макросов (Сервис-Макрос-Редактор_ВижуалБейсик или Alt+F11). В вижуал-бейсике есть команды двоичного вывода в файл. На обычном бейсике, прилагаемом к ДОСу, я в своё время много аудио-файлов создал именно с такой целью: специальные сигналы. Возможно, что не меньшими способностями обладает и вижуал. Правда, у меня почему-то в екселе эти пункты меню сейчас не работают (возможно, из-за того, что я во время установки отказался от В-Бейсика), поэтому я не могу оперативно проверить что-нибудь и/или подсказать.
    Всего доброго.
    Евгений.

  5. #5
    Старый знакомый
    Автор темы
    Аватар для Анатоль
    Регистрация
    02.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    832

    По умолчанию Re: Преобразовать xls файл в wav

    Евгений, спасибо, будем пробовать.
    Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает

  6. #6
    Частый гость Аватар для amplifier
    Регистрация
    10.09.2006
    Адрес
    london.uk/саратов.ру
    Сообщений
    367

    По умолчанию Re: Преобразовать xls файл в wav

    Да, все реализуется командами VBA. Можно поступить и несколько по-другому.
    Генерировать в Excel нужные последовательности чисел, потом копировать их в блокнот, получать два столбца, разделенных пробелом, сохранять в виде тхт, а затем над этим тхт производить заклинание например скриптом, написанным на JScript или VBScript. Заклинание по сути простое - нужно просто составить заголовок, в котором прописана частота дискретизации, битность, а также длина последовательности, а потом дописать "взад" имеющиеся в тхт числа.
    Я в свое время делал программки на C и matlab. Если сильно надо, я попрошу их найти.

  7. #7
    Старый знакомый
    Автор темы
    Аватар для Анатоль
    Регистрация
    02.04.2006
    Адрес
    Санкт-Петербург
    Сообщений
    832

    По умолчанию Re: Преобразовать xls файл в wav

    То есть , например, создать звуковым редактором wav файл нужного формата и найти способ как заменить в нём данные на созданные Excelем.
    А как быть с контрольной суммой? или это не из этой оперы
    Программированием не занимался, а неужели нет готовых решений.
    Не ошибается тот, кто ничего не делает и ошибается тот, кто ничего не делает

  8. #8
    Частый гость Аватар для amplifier
    Регистрация
    10.09.2006
    Адрес
    london.uk/саратов.ру
    Сообщений
    367

    По умолчанию Re: Преобразовать xls файл в wav

    Там контрольной суммы нету, есть только длина последовательности.
    На самом деле, там ничего сложного нету, надо просто знать формат (что куда и какой длины писать) заголовка.

  9. #9
    Частый гость Аватар для Eats
    Регистрация
    05.01.2008
    Адрес
    St.Petersburg
    Возраст
    56
    Сообщений
    364

    По умолчанию Re: Преобразовать xls файл в wav

    Цитата Сообщение от Анатоль Посмотреть сообщение
    Программированием не занимался, а неужели нет готовых решений.
    Нет. Иначе бы зачем мы тут всё это делали бы? Никому ж лишнюю работу делать неохота. Но приходится. Единственное, что ексел умеет делать сам, так это сохранять текущий лист в текстовом формате, причём можно даже заказать разделитель ячеек, чтобы потом этот текст могла обработать другая программа. На этом его возможности заканчиваются. Я в своё время, когда работал секретарём, написал себе макрос для перевода строки типа "1 234 567 руб. 89 коп." в сумму прописью, да ещё и с вычислением НДС 18%, но даже это в Ворде работает, а в екселе не хочет. Всё надо делать самому, ничего готового нет.
    Кстати, вот на всякий случай формат заголовка:

    DWORD "RIFF" // имя чанка
    DWORD Размер остатка файла, равен размеру файла -8
    DWORD "WAVE" // имя чанка
    DWORD "fmt " // имя блока
    DWORD Размер блока; // В нашем случае длина этого блока =16 (байтов)
    WORD wFormatTag; // тип формата (pcm) =1
    WORD nChannels; // количество каналов (моно или стeрео) =1 или =2
    DWORD nSamplesPerSec; // частота дискретизации, может быть 44100 или что ещё.
    DWORD nAvgBytesPerSec;// скорость потока данных =nChannels * nSamplesPerSec * wBitsPerSanipIe / 8
    WORD nBlockAlign; // байтов на отсчёт =(nChannels * wBitsPerSample) / 8 (для CD =4)
    WORD vBitsPerSample; // бит на отсчёт, обычно =8, =16 или =24
    DWORD "data"; // имя чанка данных
    DWORD Размер остатка файла, в нашем случае равен размеру файла -44

    Единственная сложность при заполнении заголовка состоит в том, что необходимо заранее знать длину звуковых данных для заполнения двух полей, в первое из которых вписывается эта длина, увеличенная на 36.
    Для многоканального сигнала каналы записываются в порядке возрастания номера.
    Диапазон изменения значений сигнала определяется разрядностью квантования.
    Для 8-битных данных он составляет от 0 до 255 (Охff), причем нулю соответствует значение 128 (0х80).
    Для 16-битных данных диапазон изменения сигнала составляет от -32768 (-0х8000) до 32767, (Ox7fff), нулю соответствует значение 0.
    Перечисленными чанками RIFF, WAVE и data возможности wav-формата отнюдь не ограничиваются. Но для формирования аудио-файла это необходимый минимум.
    Последний раз редактировалось Eats; 21.02.2009 в 16:04. Причина: Добавлено описание заголовка wav-файла
    Всего доброго.
    Евгений.

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •