Arduino的語音庫
可作為Arduino圖書館“ Talkie”提供。
? Google翻譯
| 談話電壓表的演示示例 | 小工具重新啟動的插圖 |
|---|---|
| 平台 | 引腳正常 | 銷倒 | 8KHz計時器 | PWM計時器 | 評論 |
|---|---|---|---|---|---|
| AVR(UNO和Nano) | 引腳3 | 引腳11 | timer1 | timer2 | |
| ATMEGA2560 | 引腳6/PH3 | 引腳7/PH4 | timer1 | timer4 | |
| 倫納多 | 引腳9/PB5 | 引腳10/PB6 | timer1 | timer4 | |
| Probipro | 引腳5/PC6 | % | timer1 | timer4 | |
| 埃斯普洛拉 | 引腳6/PD7 | % | timer1 | timer4 | |
| 零(SAMD) | A0 | % | TC5 | DAC0 | |
| ESP32 | 引腳25 | % | hw_timer_t | DAC0 | |
| Bluepill | 引腳3 | % | timer3 | 類似物 | 羅傑·克拉克斯核心 |
| Bluepill | PA3 | % | timer4 | 類似物 | STM核心 |
| 青少年 | 引腳12/14721 | % | 間隔二聚體 | 類似物 |
計時器1 (伺服計時器)在所有Atmegas都用於更新8 kHz語音輸出數據。
ATMEGA328(62500 Hz / 16 µs)或ATMEGA2560 + ATMEGA32U4(5 µS)上的計時器2 (音頻計時器)用於生成8位PWM輸出。
因此,這兩個計時器都無法用於其他庫 /目的,例如伺服控製或音調輸出。
有兩個用於藍訴的核心。
STM32F1 ; http://dan.drown.org/stm32duino/package_stm32duino_index.jsonstm32 ; https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.json對於Roger Clark Core來說,高速PWM的生成很複雜,對於STM核心來說,很容易。 Roger Clark Core的VoltMeterSayq.cpp的程序大小為21 KByte ,而STM Core的程序尺寸為32 kbyte 。 8 kHz中斷的處理需要8 µs, Roger Clark Core需要8 µs,而STM Core需要12 µs 。
say...()您可以再次使用tone() 。write() detach() )之前使用[sloeber] Ervo write() ,然後將伺服器attach()以便再次初始化伺服器的計時器。Talkie Voice(true, false);而不是Talkie Voice;或Voice.doNotUseInvertedOutput(); 。預定義的詞彙可以在詞彙_*。h文件中找到,尤其是在vocab_us_large.h中。
要創建LPC數據,您可以使用Python_wizard或Mac OS X的BlueWizard。
創建LPC數據的另一種方法是使用QboxPro,QboxPro是一種在XP下運行的不支持的舊Windows應用程序,該應用程序可以生成Talkie兼容的數據流。丟失的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。這為16 MHz Atmega節省了10個微秒(40個而不是50 US),並且質量幾乎相同,除了“千”字中的一些“輟學”。 |
ENABLE_PITCH | 禁用 | Talkie.H | 如果定義,我們解釋了say()和SayQ()的第二個參數aSampleRateForPitch 。這需要大約160個計劃空間,幾乎沒有時間消費的部門。如果禁用,則只是忽略參數aSampleRateForPitch 。 |
SAMPLE_RATE_DEFAULT | 8000 | Talkie.H | F您想為Talkie全球設定音調,您可以更改此值,這可以通過激活ENABLE_PITCH節省隱含的開銷 |
首先,使用草圖>顯示草圖文件夾(CTRL+K) 。
如果您尚未將示例保存為您自己的草圖,那麼您立即位於正確的庫文件夾中。
否則,您必須導航到並行libraries文件夾,然後選擇要訪問的庫。
在這兩種情況下,庫源和Include文件都位於庫中src目錄中。
必須為每個新庫版本續訂修改!
如果您使用的是Platformio,則可以使用build_flags = -D MACRO_NAME或build_flags = -D MACRO_NAME=macroValue在platform.ini文件中定義宏。
如果您將Sloeber用作IDE,則可以輕鬆地使用屬性> Arduino> CompileOptions定義全局符號。 

2017年以來的談話實施,基於彼得·奈特斯(Peter Knights)版本,以俯仰,速度和彎曲擴展。
aSampleRateForPitch和Macro ENABLE_PITCH 。digitalWriteNonInvertedOutput()和digitalWriteInvertedOutput() 。sayQTimeout() 。sayQVoltageVolts() 。Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);圖書館的示例通過GITHUB操作進行以下董事會測試: