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操作进行以下董事会测试: