mirror of
https://github.com/UberGuidoZ/Flipper.git
synced 2024-12-23 06:50:12 +00:00
96 lines
2.7 KiB
C
96 lines
2.7 KiB
C
|
#include <furi.h>
|
||
|
|
||
|
#ifndef __STM32SAM__
|
||
|
#define __STM32SAM__
|
||
|
|
||
|
// SAM Text-To-Speech (TTS), ported from https://github.com/s-macke/SAM
|
||
|
|
||
|
class STM32SAM {
|
||
|
public:
|
||
|
STM32SAM(uint32_t STM32SAM_SPEED);
|
||
|
STM32SAM();
|
||
|
|
||
|
void begin(void);
|
||
|
|
||
|
void
|
||
|
sam(const char* argv,
|
||
|
unsigned char phonetic,
|
||
|
unsigned char singmode,
|
||
|
unsigned char pitch,
|
||
|
unsigned char speed,
|
||
|
unsigned char mouth,
|
||
|
unsigned char throat);
|
||
|
void
|
||
|
sam(char* argv,
|
||
|
unsigned char phonetic,
|
||
|
unsigned char singmode,
|
||
|
unsigned char pitch,
|
||
|
unsigned char speed,
|
||
|
unsigned char mouth,
|
||
|
unsigned char throat);
|
||
|
|
||
|
void say(const char* argv);
|
||
|
void say(char* argv);
|
||
|
void sing(const char* argv);
|
||
|
void sing(char* argv);
|
||
|
void sayPhonetic(const char* argv);
|
||
|
void sayPhonetic(char* argv);
|
||
|
void singPhonetic(const char* argv);
|
||
|
void singPhonetic(char* argv);
|
||
|
void setVoice(
|
||
|
unsigned char _pitch = 64,
|
||
|
unsigned char _speed = 72,
|
||
|
unsigned char _mouth = 128,
|
||
|
unsigned char _throat = 128);
|
||
|
void setPitch(unsigned char _pitch = 64);
|
||
|
void setSpeed(unsigned char _speed = 72);
|
||
|
void setMouth(unsigned char _mouth = 128);
|
||
|
void setThroat(unsigned char _throat = 128);
|
||
|
|
||
|
private:
|
||
|
void SetAUDIO(unsigned char main_volume);
|
||
|
|
||
|
void Output8BitAry(int index, unsigned char ary[5]);
|
||
|
void Output8Bit(int index, unsigned char A);
|
||
|
unsigned char Read(unsigned char p, unsigned char Y);
|
||
|
void Write(unsigned char p, unsigned char Y, unsigned char value);
|
||
|
void RenderSample(unsigned char* mem66);
|
||
|
void Render();
|
||
|
void AddInflection(unsigned char mem48, unsigned char phase1);
|
||
|
void SetMouthThroat();
|
||
|
unsigned char trans(unsigned char mem39212, unsigned char mem39213);
|
||
|
void SetInput(char* _input);
|
||
|
void Init();
|
||
|
int SAMMain();
|
||
|
void PrepareOutput();
|
||
|
void Insert(
|
||
|
unsigned char position /*var57*/,
|
||
|
unsigned char mem60,
|
||
|
unsigned char mem59,
|
||
|
unsigned char mem58);
|
||
|
void InsertBreath();
|
||
|
void CopyStress();
|
||
|
int Parser1();
|
||
|
void SetPhonemeLength();
|
||
|
void Code41240();
|
||
|
void Parser2();
|
||
|
void AdjustLengths();
|
||
|
void Code47503(unsigned char mem52);
|
||
|
void Code37055(unsigned char mem59);
|
||
|
void Code37066(unsigned char mem58);
|
||
|
unsigned char GetRuleByte(unsigned short mem62, unsigned char Y);
|
||
|
int TextToPhonemes(unsigned char* input); // Code36484
|
||
|
|
||
|
uint32_t _STM32SAM_SPEED;
|
||
|
|
||
|
unsigned char speed;
|
||
|
unsigned char pitch;
|
||
|
unsigned char mouth;
|
||
|
unsigned char throat;
|
||
|
|
||
|
unsigned char phonetic;
|
||
|
unsigned char singmode;
|
||
|
|
||
|
}; // STM32SAM class
|
||
|
|
||
|
#endif
|