Каким образом можно воспроизвести человеческую речь с MCU PIC при помощи модуля PWM? Хотелось бы записывать голосовые сообщения с компьютера в EEPROM И потом воспроизводить. Hо непонятна методика и формат сохранения/преобразования записанного с микрофона на ПК WAV-файла.
Didn't find your answer? Ask the community — no account required.
S
Sergey Mudry
Hello, slavik! You wrote to all on Tue, 24 May 2005 13:48:18 +0400:
sl> Каким образом можно воспроизвести человеческую речь с MCU PIC при sl> помощи модуля PWM? Хотелось бы записывать голосовые сообщения с sl> компьютера в EEPROM И потом воспроизводить. Hо непонятна методика и sl> формат сохранения/преобразования записанного с микрофона на ПК sl> WAV-файла. Если не хочешь разбирать формат WAV на PIC, возьми формат попроще. Запускаешь какой-нибудь аудиоредактор, пишешь звук, редактируешь его (вырезаешь паузы, поднимаешь громкость почти под самое ограничение, можно ещё эквалайзер покрутить). Затем сохраняешь в формате RAW, моно, 8 бит без знака, с частотой какой нравится. Получается файл в котором готовые аудиоданные для вывода в PWM (при условии, что там ровно 8 бит), можешь их сразу зашить программатором в EEPROM. Всё.
With best regards, Serg.
S
Sergey Zabelin
Hi!
slavik levchenko сообщил в новостях следующее:
Если на ширпотребном MCU - наиболее просто и эффективно с помощью ADPCM.
Я в свое время делал так. 1) Записал все тексты при помощи девочки с хорошим голосом и виндового рекордера. 2) Для обработки использовал SoundForge (кажется 4.5) Там производилась фильтрация, убирались шумы, нормализовалось, вырезались хвосты, паузы и ненужные куски, ограничивался пик-фактор и т.д. Результаты сохранялись в формате *.raw. Он наиболее удобен - только отсчеты без всяких заголовков и сжатий. 3) Написал утилитку, которая брала эти *.raw файлы кодировала их ADPCM и сохраняла как исходники С, в виде массивов типа const unsigned char far Voice1[] = { 0x77,0x37, ... 0x19 }; Одновременно она формировала каталог этих файлов, опять же, в виде исходника на С. 4) Полученные файлы включались в проект, компилировались, заливались во флеш вместе с программой. Которая включала в себя ADPCM декодер и их воспроизводила 8-битным PWM, синтезируя необходимые фразы из записанных слов и словосочетаний. Работало замечательно. Всего где-то на 160к у меня голоса было, при дискретизации 7кГц это составляло около 50с
Если интересно, устройство о котором идет речь
formatting link
На этапе 3 я некоторое время пытался создать сразу *.obj файлы, но потом бросил это занятие в виду бессмысленности. Реализация ADPCM есть в примерах то ли у Atmel, то ли у Microchip, уже не помню. Я откуда-то оттуда брал, с небольшими правками.
Примите уверения в совершеннейшем к Вам почтении
D
Dmitri Litovchenko
Приветствую Вас, многоуважаемый/ая/ое Sergey!
Втp Май 24 2005 18:58, Sergey Mudry писал к slavik levchenko:
SM> Если не хочешь разбирать формат WAV на PIC, возьми формат попроще.
Ой... а куда уж проще? Если WAV не жатый - это 44 (кажись) байта заголовка + PCM-данные.
С наилучшими пожеланиями, Dmitri.
D
Dimmy Timchenko
Hello Sergey.
Tue May 24 2005 19:53, Sergey Zabelin wrote to slavik levchenko:
SZ> Если на ширпотребном MCU - наиболее просто и эффективно с помощью SZ> ADPCM.
Кстати, а где можно почитать про стандарты ADPCM? Винда, вроде, поддерживает два: IMA ADPCM и MS ADPCM. Где-то описано, чем они отличаются? Или, может, библиотечки/исходники на ЯВУ имеются?
SZ> Реализация ADPCM есть в примерах то ли у Atmel, то ли у Microchip, уже SZ> не помню. Я откуда-то оттуда брал, с небольшими правками.
Ясно... вот как плохо сначала отвечать, а потом дочитывать до конца письмо. :) Hо, может, кто-то ещё даст более прямые ссылки?
Dimmy.
R
Roman Khvatov
Hello Dimmy.
25 May 05 14:40, you wrote to Sergey Zabelin:
SZ>> Если на ширпотребном MCU - наиболее просто и эффективно с помощью SZ>> ADPCM.
DT> Кстати, а где можно почитать про стандарты ADPCM? Винда, вроде, DT> поддерживает два: IMA ADPCM и MS ADPCM.
В Винде и посмотреть, точнее на Microsoft'е. Эти описания входят в общее описание RIFF формата.
(У меня валяется древний файл riff.doc от 1993 года, так есть описание ADPCM'ов, кроме того, там упоминается Multimedia Developer Registration Kit - поищи что нибудь похожее но посовременнее на msdn.microsoft.com)
DT> Где-то описано, чем они отличаются?
Всем, 2 совершенно разных алгоритма (а вообще там 6 разных ADPCM'ов)
Roman
S
Sergey Mudry
Hello, Dmitri! You wrote to Sergey Mudry on Tue, 24 May 2005 21:13:15 +0400:
SM>> Если не хочешь разбирать формат WAV на PIC, возьми формат попроще. DL> Ой... а куда уж проще? Если WAV не жатый - это 44 (кажись) байта DL> заголовка + PCM-данные. А в RAW - только данные :) А заголовок WAV может быть разной длины, в нём могут быть дополнительные поля типа комментариев. Про разные параметры типа частоты дискретизации, число каналов, и типы сжатия я молчу. Если микроконтроллерный девайс поддерживает только один набор параметров, зачем нужен заголовок?
With best regards, Serg.
G
George Shepelev
Sergey, ты ещё здесь сидишь?
Четверг Май 26 2005 14:58, Sergey Mudry wrote to Dmitri Litovchenko:
SM>>> Если не хочешь разбирать формат WAV на PIC, возьми формат SM>>> попроще. DL>> Ой... а куда уж проще? Если WAV не жатый - это 44 (кажись) DL>> байта заголовка + PCM-данные. SM> А в RAW - только данные :) SM> А заголовок WAV может быть разной длины,
Это точно!
SM> в нём могут быть дополнительные поля типа комментариев. Про разные SM> параметры типа частоты дискретизации, число каналов, и типы сжатия я SM> молчу. Если микроконтроллерный девайс поддерживает только один набор SM> параметров, зачем нужен заголовок?
Hизачем. Если аудиософт не может создать файл в формате RAW - написать нехитрую софтинку, которая будет "отрезать" заголовок от WAV файла. Если надо - то и запаковать сможет, произвольным алгоритмом...
Георгий
D
Dimmy Timchenko
Hello Sergey.
Thu May 26 2005 15:58, Sergey Mudry wrote to Dmitri Litovchenko:
DL>> Ой... а куда уж проще? Если WAV не жатый - это 44 (кажись) байта DL>> заголовка + PCM-данные.
SM> А в RAW - только данные :)
Кстати, интересно, а насколько сложен алгоритм декодирования MP3? Как я понимаю, там плавающая точка?
Dimmy.
S
Sergey Mudry
Hello, Dimmy! You wrote to Sergey Mudry on Fri, 27 May 2005 07:55:52 +0400:
DT> Кстати, интересно, а насколько сложен алгоритм декодирования MP3? Как DT> я понимаю, там плавающая точка? Достаточно сложен. Декодер Хаффмана+прескалинг+антиалиасинг+косинусный синтез. Подробности в исходниках. :) При желании, можно и в 32 бита с фиксированой точкой запихнуть, пробовал когда-то. Только для PIC'а это далеко за пределами быстродействия. По моим прикидкам, для 44 кГц стерео надо где-то 10-20 миллионов
32-битных умножений в секунду. Для 8 кГц моно - поменьше, но всё равно не хватит.
With best regards, Serg.
V
Vladimir Vassilevsky
Fri May 27 2005 08:55, Dimmy Timchenko wrote to Sergey Mudry:
DT> Кстати, интересно, а насколько сложен алгоритм декодирования MP3?
Порядка 20...30 MIPS DSP.
DT> Как я DT> понимаю, там плавающая точка?
Hе обязательно.
VLV
"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт
K
Kirill Frolov
HÅ ÏÂÑÚÁÔÅÌØÎÏ. á ×ÏÏÂÝÅ ÍÏÖÎÏ ÓÍÏÔÒÅÔØ × ÓÔÏÒÏÎÕ mpg123.
K
Kirill Frolov
sox -- SOund eXchange
G
George Shepelev
Kirill, ты ещё здесь сидишь?
Вторник Май 31 2005 01:38, Kirill Frolov wrote to George Shepelev:
Hе попадалось. Можно полный URL?
Георгий
K
Kirill Frolov
Wed Jun 01 2005 23:44, George Shepelev wrote to Kirill Frolov:
GS> Kirill, ты ещё здесь сидишь?
GS> Вторник Май 31 2005 01:38, Kirill Frolov wrote to George Shepelev:
GS> Hе попадалось. Можно полный URL?
formatting link
-- несложно было бы и догадаться.
K
Kirill Frolov
sox.sf.net
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.