aboutsummaryrefslogtreecommitdiff
path: root/sam_player.c
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2012-06-14 21:48:26 +0200
committerReiner Herrmann <reiner@reiner-h.de>2012-06-14 21:48:26 +0200
commit9472ce4c6ca0892ba8fcf0b77034cae9f33247c5 (patch)
treed6703ae8e3f97e19edaaac3e9f40e63e0735d7c1 /sam_player.c
parenta33518b5353b33935a255680ba8c7ad40c9980cc (diff)
increased buffer; added phonetic modeHEADtrunk
Diffstat (limited to 'sam_player.c')
-rw-r--r--sam_player.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/sam_player.c b/sam_player.c
index 9b2292c..b3b7208 100644
--- a/sam_player.c
+++ b/sam_player.c
@@ -6,29 +6,37 @@
#include "sam.h"
#include "wave.h"
+#include <stdio.h>
-static unsigned char wave_buffer[200000];
+static unsigned char wave_buffer[800000];
static wave_t wave = { 1, 44100, 8, 0, 1, wave_buffer };
int main(int argc, char **argv)
{
unsigned int wave_length;
- if(argc != 3)
+ if(argc != 4)
{
- printf("Usage: %s <filename.wav> <text>\n", argv[0]);
+ printf("Usage: %s <r|s> <filename.wav> <text>\n", argv[0]);
return 1;
}
sam_init();
wave_length = sizeof(wave_buffer);
- sam_recite(argv[2], wave.samples_per_sec, wave_buffer, &wave_length);
+
+ if(argv[1][0] == 'r')
+ sam_recite(argv[3], wave.samples_per_sec, wave_buffer, &wave_length);
+ else if(argv[1][0] == 's')
+ sam_phonetic(argv[3], wave.samples_per_sec, wave_buffer, &wave_length);
+ else
+ return 2;
+
if(wave_length > 0)
{
if(wave_length > sizeof(wave_buffer))
wave_length = sizeof(wave_buffer);
wave.frame_size = wave_length;
- wave_out(&wave, argv[1]);
+ wave_out(&wave, argv[2]);
}
return 0;
}