File: sam.h

package info (click to toggle)
firmware-microbit-micropython 1.0.1-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 25,448 kB
  • sloc: ansic: 83,496; cpp: 27,664; python: 2,475; asm: 274; makefile: 245; javascript: 41; sh: 25
file content (95 lines) | stat: -rw-r--r-- 2,689 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#ifndef SAM_H
#define SAM_H

#define DEFAULT_SING     false
#define DEFAULT_PITCH    64
#define DEFAULT_SPEED    72
#define DEFAULT_MOUTH    128
#define DEFAULT_THROAT   128

typedef struct _phoneme_t {
    unsigned char index;
    unsigned char length;
    unsigned char stress; //numbers from 0 to 8
    unsigned char pitch;
} phoneme_t;

enum {
    PHONEME_IGNORE=0,
    PHONEME_END=127,
    PHONEME_END_BREATH=126
};

#define RENDER_FRAMES 256

#define INPUT_PHONEMES 128
#define OUTPUT_PHONEMES (RENDER_FRAMES/4)

typedef struct _prepare_memory {
    const char *input;
    unsigned int input_length;
    phoneme_t phoneme_input[INPUT_PHONEMES];
} prepare_memory;


typedef struct _common_memory {
    unsigned char speed;
    unsigned char pitch;
    unsigned char mouth;
    unsigned char throat;
    int singmode;
    phoneme_t phoneme_output[OUTPUT_PHONEMES];
} common_memory;

typedef struct _render_freq_amp_t {
    unsigned int freq1:6;
    unsigned int freq2:7;
    unsigned int freq3:7;
    unsigned int amp1:4;
    unsigned int amp2:4;
    unsigned int amp3:4;
} render_freq_amp_t;

typedef struct _render_memory {
    render_freq_amp_t freq_amp[RENDER_FRAMES];
    unsigned char pitch[RENDER_FRAMES];
    unsigned char flags[RENDER_FRAMES];
} render_memory;

typedef struct _sam_memory {
    common_memory common;
    prepare_memory prepare;
    render_memory render;
} sam_memory;

void SetInput(sam_memory* mem, const char *_input, unsigned int len);

int SAMMain(sam_memory* mem);

extern char *sam_error;

char* GetBuffer();
int GetBufferLength();

//char input[]={"/HAALAOAO MAYN NAAMAEAE IHSTT SAEBAASTTIHAAN \x9b\x9b\0"};
//unsigned char input[]={"/HAALAOAO \x9b\0"};
//unsigned char input[]={"AA \x9b\0"};
//unsigned char input[] = {"GUH5DEHN TAEG\x9b\0"};

//unsigned char input[]={"AY5 AEM EY TAO4LXKIHNX KAX4MPYUX4TAH. GOW4 AH/HEH3D PAHNK.MEYK MAY8 DEY.\x9b\0"};
//unsigned char input[]={"/HEH3LOW2, /HAW AH YUX2 TUXDEY. AY /HOH3P YUX AH FIYLIHNX OW4 KEY.\x9b\0"};
//unsigned char input[]={"/HEY2, DHIHS IH3Z GREY2T. /HAH /HAH /HAH.AYL BIY5 BAEK.\x9b\0"};
//unsigned char input[]={"/HAH /HAH /HAH \x9b\0"};
//unsigned char input[]={"/HAH /HAH /HAH.\x9b\0"};
//unsigned char input[]={".TUW BIY5Y3,, OHR NAA3T - TUW BIY5IYIY., DHAE4T IHZ DHAH KWEH4SCHAHN.\x9b\0"};
//unsigned char input[]={"/HEY2, DHIHS \x9b\0"};

//unsigned char input[]={" IYIHEHAEAAAHAOOHUHUXERAXIX  \x9b\0"};
//unsigned char input[]={" RLWWYMNNXBDGJZZHVDH \x9b\0"};
//unsigned char input[]={" SSHFTHPTKCH/H \x9b\0"};

//unsigned char input[]={" EYAYOYAWOWUW ULUMUNQ YXWXRXLX/XDX\x9b\0"};


#endif