Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR+звук
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
over
Благодарю за ответы в предыдущей теме. Работа моя продвигается. Это мой первый проект на AVR и на МК вообще.
Вопрос следующий. Как реализовать звуки. Однотоновые понятно как сделать, а вот более благородные гармонические звуки. Как выглядит сам алгоритм для простой пьезопищалки.
IgorKossak
Обычно это делается на ШИМ.
Берётся какой-нибудь благородный звук в формате *.wav, перекодируется в моно 8-бит самой малой скорости, удаляется заголовок и полученный набор значений используется для периодической загрузки ШИМ регистра в МК.
Примеры подобной игрушки есть на Атмеле и на АВРфриксе.
SPS
Сам звук можно также записывать через быстродействующий 10-битный АЦП МК Atmel.
trofim
А как насчет синтеза речи из фонем или TTS
SPS
Придется дополнительную FLASH-память подключать.
IgorKossak
Цитата(SPS @ Feb 10 2005, 16:23)
Придется дополнительную FLASH-память подключать.
*

Можно даже DataFlash, чтобы дешевле было.
Kit
Цитата(over @ Feb 9 2005, 23:32)
Благодарю за ответы в предыдущей теме. Работа моя продвигается. Это мой первый проект на AVR и на МК вообще.
Вопрос следующий. Как реализовать звуки. Однотоновые понятно как сделать, а вот более благородные гармонические звуки. Как выглядит сам алгоритм для простой пьезопищалки.
*

Возможно вот енто тебе поможет
url
radimir
Цитата(IgorKossak @ Feb 10 2005, 14:02)
Обычно это делается на ШИМ.
Берётся какой-нибудь благородный звук в формате *.wav, перекодируется в моно 8-бит самой малой скорости, удаляется заголовок и полученный набор значений используется для периодической загрузки ШИМ регистра в МК.
Примеры подобной игрушки есть на Атмеле и на АВРфриксе.
*

интересно, а насколько качественный звук при этом получается? кто нибудь делал так?
aal
Игрушки поющие и говорящие "ай лав ю" слышал? Такая же фигня, только в левой руке и много дороже...
IgorKossak
Цитата(radimir @ Feb 19 2005, 02:21)
интересно, а насколько качественный звук при этом получается? кто нибудь делал так?
*

Качество терпимое, применяли в рекламных проектах.
Если нужно выше качество, то оцифровка должна быть не 8 бит, а больше и с большей частотой. Но при этом и затраты на память возрастут.
Можно сэкономить на памяти применив кодирование звука в формате mp3 или wma, но AVRу здесь уже делать нечего.
franc
Цитата(IgorKossak @ Feb 10 2005, 12:02) *
Обычно это делается на ШИМ.
Берётся какой-нибудь благородный звук в формате *.wav, перекодируется в моно 8-бит самой малой скорости, удаляется заголовок и полученный набор значений используется для периодической загрузки ШИМ регистра в МК.
Примеры подобной игрушки есть на Атмеле и на АВРфриксе.

Какой программой вы перекодируете звук.
IgorKossak
Цитата(franc @ Feb 16 2007, 16:48) *
Цитата(IgorKossak @ Feb 10 2005, 12:02) *

Обычно это делается на ШИМ.
Берётся какой-нибудь благородный звук в формате *.wav, перекодируется в моно 8-бит самой малой скорости, удаляется заголовок и полученный набор значений используется для периодической загрузки ШИМ регистра в МК.
Примеры подобной игрушки есть на Атмеле и на АВРфриксе.

Какой программой вы перекодируете звук.

Пуск/Программы.../Стандартные/Развлечения/Звукозапись
Открыть любимый файл *.wav
Сохранить как... с нужными настройками по кнопке Изменить..., например формат PCM, 8 кГц, 8 бит, Моно.
slog
Вот тут посмотри.
http://elm-chan.org/works/mxb/report_e.html
Лучше вряд ли сделаешь.

А это как образец (~1Mb)
http://members.jcom.home.ne.jp/felm/mg.mpg
Nanobyte
Цитата(IgorKossak @ Feb 19 2005, 12:25) *
... Можно сэкономить на памяти применив кодирование звука в формате mp3 или wma, но AVRу здесь уже делать нечего.

Ну почему-же нечего? Можно взять известную микросхемку VS1001K и тогда длительность и качество звука будет зависеть только от объёма MMC-карты. Tiny2313 у меня прекрасно справляется с потоком 256К. А ведь можно файлы и на 128/64K-mono сделать. Правда, цена у VS не очень маленькая.
CD_Eater
Цитата(IgorKossak @ Feb 19 2005, 12:25) *
Если нужно выше качество, то оцифровка должна быть не 8 бит, а больше
Позволю себе усомниться в справедливости этого утверждения. Как-то я проводил опыт (не на МК, на компьютере) - брал качественный звук PCM 44кГц 16бит (с лицензионного аудио-CD), обнулял младшие биты сэмплов и сравнивал полученное на слух с оригиналом. (Возможно, специальный софт позволяет сделать это в 2 щелчка, я же самопальной программкой лез внутрь WAV-файла и менял байты). Результат меня очень удивил - я НЕ СЛЫШАЛ разницы между 16-битным и 6-битным звуком. То есть, 16-битный и 8-битный звуки (и даже 6-битный) были одинаковы на слух, а вот уже 5-битный можно было отличить от них по качеству. Напротив, изменение частоты дискретизации (конвертация из 44кГц в 22кГц) ОЧЕНЬ РЕЗКО ухудшала звук независимо от количества битов на сэмпл.
Это я к тому, что повышение разрядности с 8 до 16 ровным счётом ничего не даст, лучше пустить добавочный битрейт на увеличение частоты дискретизации.

P.S. Сейчас меня обвинят в некачественности моих настольных колонок (кстати, недешёвых). Или в том, что медвед мне на ухо наступил. Однако опыт изначально проводился с точки зрения обывателя, а не аудиофила. Да и повторить его вы легко можете сами. Кстати, было бы любопытно сравнить результаты.
rx3apf
Цитата(CD_Eater @ Feb 17 2007, 01:49) *
Это я к тому, что повышение разрядности с 8 до 16 ровным счётом ничего не даст, лучше пустить добавочный битрейт на увеличение частоты дискретизации.

P.S. Сейчас меня обвинят в некачественности моих настольных колонок (кстати, недешёвых). Или в том, что медвед мне на ухо наступил. Однако опыт изначально проводился с точки зрения обывателя, а не аудиофила. Да и повторить его вы легко можете сами. Кстати, было бы любопытно сравнить результаты.

Все ж, IMHO, и в самом деле чуток наступил wink.gif Прими как факт - даже "телефонное" качество - это не 8, а этак 12 бит, сжатых a-/u-law до 8. Слышно. Заметно. Если сравнивать. А так - худо-бедно, если не для музыки, а для речи - пригодно.
smk
Позвольте вставить 5 копеек. Как я понимаю, то разрядность в первую очередь определяет динамический диапазон. Конечно если уменьшить разрядность до 1 бит то ни о каком качестве речи не будет. Частота квантования определяет граничную верхнюю граничную частоту. Таким образом вопрос качества сводится к определению границы приемлемости. Это зависит от двух вещей: уровня "солидности" прибора воспроизведения т.к. выше головы он не прыгнет, а так же от индивидуальных вкусовых пристрастий. Вот если бы стояла задача писать речь - то был бы критерий разборчивости. Примерно так.
muravei
Цитата(smk @ Feb 17 2007, 03:10) *
Конечно если уменьшить разрядность до 1 бит то ни о каком качестве речи не будет.

Почему не будет? Очень даже будет !(конечно не "Высокий конец")Надо только резко увеличить F семпл. и будет это называться дельта - модуляцией. Существуют ЦАПы - однобитники и есть система SACD - в частота -2.8 МГц
Еще есть мс , которые запоминают звук в дискретно-аналоговом виде, в этом разделе уже упоминались.
CD_Eater
Цитата(rx3apf @ Feb 17 2007, 02:16) *
Прими как факт - даже "телефонное" качество - это не 8, а этак 12 бит, сжатых a-/u-law до 8. Слышно. Заметно. Если сравнивать. А так - худо-бедно, если не для музыки, а для речи - пригодно.

Именно так я и думал, пока не проверил. Чем спорить - проверь сам. А качество телефонных разговоров определяется не разрядностью сэмплирования, а очень существенными помехами на линии smile.gif
blackfin
Цитата(CD_Eater @ Feb 17 2007, 11:54) *
Именно так я и думал, пока не проверил. Чем спорить - проверь сам. А качество телефонных разговоров определяется не разрядностью сэмплирования, а очень существенными помехами на линии smile.gif

А чего тут спорить?
Известно, что высокий порядок квантователя "p" в ЦАП и
большой коэффициент передискретизации "M" ЦАП'а
приводят к увеличению "эффективного" числа бит.
В А.Оппенгейм,Р.Шафер, "Цифровая обработка сигналов", изд.2006г.
на стр.224 приведена таблица для "эффективного" числа бит при различных "p","M"
из которой видно, что при p=5, M=8 в дополнение к 6 бит WAV файла
хорошая звуковая карта "добавит" 10 бит за счет формирования спектра шума.
Итого получим 16-ти битный звук с полосой 5,5 КГц.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.