Biblioteca de fala para Arduino
Disponível como Biblioteca Arduino "Talkie".
? Google tradutor
| Exemplo de demonstração de talkie voltímetro | Intodução por reinicialização de gadgets |
|---|---|
| Plataforma | Pino normal | Pino invertido | Timer de 8kHz | PWM Timer | Observações |
|---|---|---|---|---|---|
| AVR (UNO e Nano) | Pino 3 | Pino 11 | Timer1 | Timer2 | |
| ATMEGA2560 | Pino 6/ph3 | Pino 7/ph4 | Timer1 | Timer4 | |
| Leonardo | Pino 9/PB5 | Pino 10/PB6 | Timer1 | Timer4 | |
| Promicro | PIN 5/PC6 | % | Timer1 | Timer4 | |
| Esplora | Pino 6/PD7 | % | Timer1 | Timer4 | |
| Zero (SAMD) | A0 | % | TC5 | DAC0 | |
| Esp32 | Pino 25 | % | hw_timer_t | DAC0 | |
| Bluepill | Pino 3 | % | Timer3 | Analogwrite | Roger Clarks Core |
| Bluepill | PA3 | % | Timer4 | Analogwrite | STM CORE |
| Teensy | Pino 12/14721 | % | Intervalimer | Analogwrite |
O timer 1 (Servo Timer) é usado em todos os atcenos para atualizar dados de saída de voz a 8 kHz.
O temporizador 2 (timer de tom) no ATMEGA328 (62500 Hz / 16 µs) ou o temporizador 4 no ATMEGA2560 + ATMEGA32U4 (5 µs) é usado para gerar a saída PWM de 8 bits.
Portanto, ambos os temporizadores não estão disponíveis para outras bibliotecas / propósitos, como controle de servo ou saída de tom.
Existem dois núcleos para o Bluepill .
STM32F1 por Roger Clark; http://dan.down.org/stm32duino/package_stm32duino_index.jsonstm32 baseado no CMSIS por ST Microsystems; https://github.com/stm32duino/boardmanagerfiles/raw/master/stm32/package_stm_index.jsonA geração do PWM de alta velocidade é complicada para Roger Clark Core e fácil para o núcleo STM. O tamanho do programa para voltmetersayq.cpp é 21 Kbyte para Roger Clark Core e 32 Kbyte para o STM Core. O manuseio de interrupção de 8 kHz requer 8 µs para o núcleo Roger Clark e 12 µs para o núcleo STM.
say...() você pode usar tone() novamente.write() Após uma chamada para dizer ... você deve detach() e attach() o servo antes de write() para inicializar o timer novamente para servo.Talkie Voice(true, false); em vez de Talkie Voice; ou Voice.doNotUseInvertedOutput(); .O vocabulário predefinido pode ser encontrado nos arquivos vocable _*. H, especialmente em vocab_us_large.h.
Para criar dados LPC, você pode usar o Python_wizard ou o BlueWizard para Mac OS X.
Outra maneira de criar dados LPC é usar o QboxPro, um aplicativo Windows antigo não suportado em execução no XP, que pode produzir fluxos de dados compatíveis com talkie. O BWCC.DLL ausente (Borland Windows Custom Control Library) pode ser encontrado aqui. O processo é descrito aqui e é assim:
C to avoid clicks | Low pass 1600Hz
_____
D3 >-----||-----|_____|-----+-----> to Power amplifier
100nF 10k |
---
--- 10 nF
|
_|_ GND
Para personalizar o software para requisitos diferentes, existem algumas opções / macros de compilação disponíveis.
Modifique -os ativando / desativando -os ou altere os valores se aplicável.
| Nome | Valor padrão | Arquivo | Descrição |
|---|---|---|---|
NO_COMPATIBILITY_FOR_TONE_LIB_REQUIRED | desabilitado | Talkie.h | Se você não usar a Biblioteca de Tons de Arduino, a ativação pode economizar até 844 bytes do tamanho do programa. |
FAST_8BIT_MODE | desabilitado | Talkie.h | Se definido, usamos 8 bits em vez de coeficientes de 16 bits K1 e K2. Isso economiza 10 microssegundos (40 em vez de 50 nós) para um atmaga de 16 MHz e tem quase a mesma qualidade, exceto alguns "desistentes", por exemplo, na palavra "mil". |
ENABLE_PITCH | desabilitado | Talkie.h | Se definido, interpretamos o segundo parâmetro aSampleRateForPitch de say() e SayQ() . Isso requer cerca de 160 bytes de espaço do programa e poucas divisões demoradas. Se desativado, o parâmetro aSampleRateForPitch é apenas ignorado. |
SAMPLE_RATE_DEFAULT | 8000 | Talkie.h | f Você deseja definir o campo globalmente para o Talkie, você pode mudar esse valor, isso salva a sobrecarga implícita ao ativar ENABLE_PITCH |
Primeiro, use Sketch> Mostrar pasta de esboço (Ctrl+K) .
Se você ainda não salvou o exemplo como seu próprio esboço, está instantaneamente na pasta da biblioteca correta.
Caso contrário, você precisará navegar para a pasta de libraries paralelas e selecionar a biblioteca que deseja acessar.
Nos dois casos, a fonte da biblioteca e os arquivos inclui estão localizados no diretório src das bibliotecas.
A modificação deve ser renovada para cada nova versão da biblioteca!
Se você estiver usando o Platformio, poderá definir as macros no arquivo Platformio.ini com build_flags = -D MACRO_NAME ou build_flags = -D MACRO_NAME=macroValue .
Se você estiver usando o Sloeber como seu IDE, poderá definir facilmente símbolos globais com propriedades> Arduino> CompileOptions . 

A implementação do Talkie a partir de 2017, com base na versão de Peter Knights, estendida com pitch, velocidade e flexão.
aSampleRateForPitch e Macro ENABLE_PITCH .digitalWriteNonInvertedOutput() e digitalWriteInvertedOutput() .sayQTimeout() em talkieutils.cpp .sayQVoltageVolts() .Talkie(bool aUseNonInvertedOutputPin, bool aUseInvertedOutputPin);Os exemplos da biblioteca são testados com ações do GitHub para os seguintes conselhos: