Корочеее... Тут надысь тема была, в которой человек озадачивался проговариванием числительных через DFPlayer. Помнится, я ему тогда ещё высказал мысль, что будут паузы между частями фраз. И вот решил я с налёту это дело протестировать, значит. Во-первых, учтите: в старенькой библиотеке DFPlayer_Mini_Mp3 от разработчиков - в функции mp3_play(num) (которая проигрывает файлы из папки mp3 на SD-карточке) - есть бага. Оригинальный код, с ошибкой: Код (C++): //play mp3 file in mp3 folder in your tf card void mp3_play (uint16_t num) { mp3_send_cmd (0x12, num); } Правильный код: Код (C++): //play mp3 file in mp3 folder in your tf card void mp3_play (uint16_t num) { uint16_t paramMSB = (num >> 8) & 0xFF; uint16_t paramLSB = num & 0xFF; mp3_send_cmd (0x12, paramMSB, paramLSB); //mp3_send_cmd (0x12, num); } Иначе хрен она у вас будет играть файлы с номерами - пожалуй, сами догадаетесь, с какого номера файла начнётся затык Корочее.... Воспользовавшись чудненьким сервисом https://soundoftext.com/ - понагенерировал и поназакачал этих самых mp3-файлов. Задача была - втупую обучить дуню произносить числа в диапазоне [0,10000) (кто не врубился, поясню - от 0 включительно до 10000, не включая 10000). Эксперимент показал, что на файлах короткой длительности пину BUSY плеера верить не стоит, прерывания под такое дело отводить - аннунах, жирно будет, посему было решено отказаться от анализа пина BUSY в пользу настраиваемых временнЫх маркеров проигрывания того или иного файла. Что, теоретически, позволило бы уменьшить паузы между словами; на практике - да, чуть уменьшило. В целом - поигрался, понастраивал чуть-чуть паузы для каждого из файлов, особо париться не стал - мне хватило, результатом удовлетворён. Всё добро лежит тут: https://github.com/Porokhnya/MP3Say Как пользоваться: Всю папку mp3 - на SD-карточку и в плеер; Плеер подключаем согласно даташиту, пины для SoftwareSerial - настраиваются в самом верху *.ino-файла; Компилируем (юзал версию 1.8.5 и Uno), заливаем, открываем монитор порта, ждём приглашения и вводим числа (в мониторе порта должно быть настроено "NL & CR"), жмакаем ENTER на клаве, слушаем голос, рыдаем и плачем (потому как всё равно слышно, что сгенерирован, упёрся в техническую паузу при проигрывании MP3). Код там - тупой, писан глубокой ночью, но - комментарии есть, склонение числительных - какое-никакое, но присутствует. Короче - всё без претензий, делайте с этим, чо хотите - я просто разместил объяву
Корочее... Лучшим вариантом мне таки представляется нагенерить числительных в полных файлах, под конкретный проект: например, если надо градусы озвучивать - так и нагенерить, чтобы в каждом файле была полная фраза, типа "сорок один градус". Во-первых, так будет всяко лучше звучать. Во-вторых - см. первый пункт. В-третьих - код будет сильно проще, не надо разбора числа на части. В-четвёртых - считаю, что это как раз тот случай, когда универсальность таки выходит боком, и лучше делать под конкретные требования по озвучке: помнится, было видео на ютюбе, где товарищ так красиво озвучивал температуру, аж заслушаешься, так вот: посмотрел я тот код - там действительно озвучка в полных файлах, нагенерённых на весь диапазон; видимо, т-щ тоже наткнулся на затыки в виде пауз Ссылочку на генератор фраз - я вам дал, есличо
Дык режим работы такой, привык за двадцать лет как-то уже, теперь ночью нормально хрен поспишь А ты чего бодрствуешь?
на этого кошака смотришь и... возникает какое-то чуйство...доверия что-ли. А тот инфантильный был. С ним каши не сваришь.