Библиотека речи для Arduino
Доступно как библиотека Arduino "Talkie".
? Google Translate
| Демонстрация примера вольтметра Talkie | Интакция от гаджета перезагрузки |
|---|---|
| Платформа | Приколоть нормально | ПИН -ПИН -ПЕЧАТ | 8 кГц таймер | ШИМ Таймер | Замечания |
|---|---|---|---|---|---|
| Avr (uno и nano) | Вывод 3 | PIN 11 | таймер1 | таймер2 | |
| ATMEGA2560 | PIN 6/PH3 | PIN 7/PH4 | таймер1 | таймер4 | |
| Леонардо | PIN 9/PB5 | PIN 10/PB6 | таймер1 | таймер4 | |
| PROMICRO | PIN 5/PC6 | % | таймер1 | таймер4 | |
| Esplora | PIN 6/PD7 | % | таймер1 | таймер4 | |
| Ноль (SAMD) | А0 | % | TC5 | DAC0 | |
| ESP32 | PIN 25 | % | hw_timer_t | DAC0 | |
| Bluepill | Вывод 3 | % | таймер3 | аналоговый писатель | Roger Clarks Core |
| Bluepill | PA3 | % | таймер4 | аналоговый писатель | STM Core |
| Подростка | PIN 12/14721 | % | Интервалтимер | аналоговый писатель |
Таймер 1 (серво -таймер) используется во всех Atmegas для обновления голосовых выходных данных при 8 кГц.
Таймер 2 (Tone Timer) на ATMEGA328 (62500 Гц / 16 мкс) или таймер 4 на ATMEGA2560 + ATMEGA32U4 (5 мкс) используется для генерации 8 -битного вывода ШИМ.
Следовательно, оба таймера недоступны для других библиотек / целей, таких как сервопривод или выход тона.
Есть два ядра для чертежа .
STM32F1 Роджер Кларк; http://dan.drown.org/stm32duino/package_stm32duino_index.jsonstm32 на основе CMSIS ST Microsystems; https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.jsonГенерация высокой скорости ШИМ сложна для ядра Роджера Кларка и легко для ядра STM. Размер программы для VoltmeterSayq.cpp составляет 21 кбайт для Roger Clark Core и 32 Kbyte для STM Core. Для обработки прерываний 8 кГц требуется 8 мкс для ядра Роджера Кларка и 12 мкс для ядра STM.
say...() вы можете снова использовать tone() .write() после вызова, чтобы сказать ... вы должны detach() и attach() сервоприводы перед First write() , чтобы снова инициализировать таймер для сервопривода.Talkie Voice(true, false); вместо Talkie Voice; или Voice.doNotUseInvertedOutput(); ПолемПредопределенный словарь можно найти в Vocab _*. H файлы, особенно в Vocab_US_LARGE.H.
Для создания данных LPC вы можете использовать Python_wizard или BlueWizard для Mac OS X.
Другим способом создания данных LPC является использование QboxPro, неподдерживаемого старого приложения Windows, работающего под XP, которое может создать совместимые с Talkie Streams Data. Отсутствуют BWCC.DLL (библиотека пользовательской библиотеки Borland Windows), например, здесь. Процесс описан здесь и идет так:
C to avoid clicks | Low pass 1600Hz
_____
D3 >-----||-----|_____|-----+-----> to Power amplifier
100nF 10k |
---
--- 10 nF
|
_|_ GND
Чтобы настроить программное обеспечение для различных требований, есть некоторые параметры компиляции / макросы.
Измените их, включив / отключив их, или измените значения, если применимо.
| Имя | Значение по умолчанию | Файл | Описание |
|---|---|---|---|
NO_COMPATIBILITY_FOR_TONE_LIB_REQUIRED | неполноценный | Talkie.h | Если вы не используете библиотеку тона Arduino, то активация может сохранить до 844 байт размер программы. |
FAST_8BIT_MODE | неполноценный | Talkie.h | Если определено, мы используем 8 -битные вместо 16 -битных коэффициентов K1 и K2. Это экономит 10 микросекунд (40 вместо 50 нас) для ATMEGA 16 МГц и имеет почти то же качество, за исключением нескольких «выпадений», например, в слове «тысяча». |
ENABLE_PITCH | неполноценный | Talkie.h | Если определено, мы интерпретируем второй параметр aSampleRateForPitch of say() и SayQ() . Это требует около 160 байтов программного пространства и несколько много трудоемких подразделений. Если отключен, параметр aSampleRateForPitch просто игнорируется. |
SAMPLE_RATE_DEFAULT | 8000 | Talkie.h | f вы хотите глобально установить шаг для Talkie, вы можете изменить это значение, это сохраняет накладные расходы, подразумеваемые активацией ENABLE_PITCH |
Сначала используйте Sketch> Показать папку Sketch (Ctrl+K) .
Если вы еще не сохранили пример в качестве собственного эскиза, то вы сразу же находитесь в правильной папке библиотеки.
В противном случае вы должны перейти в папку Parallel libraries и выбрать библиотеку, к которой вы хотите получить доступ.
В обоих случаях источник библиотеки и включает файлы, расположенные в каталоге библиотек src .
Модификация должна быть обновлена для каждой новой версии библиотеки!
Если вы используете Platformio, вы можете определить макросы в файле Platformio.ini с помощью build_flags = -D MACRO_NAME или build_flags = -D MACRO_NAME=macroValue .
Если вы используете Slaeber в качестве IDE, вы можете легко определить глобальные символы со свойствами> arduino> Compileoptions . 

Реализация Talkie с 2017 года, основанная на версии Peter Knights, расширена с высотой, скоростью и изгибом.
aSampleRateForPitch и macro ENABLE_PITCH .digitalWriteNonInvertedOutput() и digitalWriteInvertedOutput() .sayQTimeout() на talkieutils.cpp .sayQVoltageVolts() .Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);Примеры библиотеки тестируются с действиями GitHub для следующих плат: