From 9472ce4c6ca0892ba8fcf0b77034cae9f33247c5 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Thu, 14 Jun 2012 21:48:26 +0200 Subject: increased buffer; added phonetic mode --- sam_player.c | 18 +++++++++++++----- say.sh | 6 ++++++ 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100755 say.sh 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 -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 \n", argv[0]); + printf("Usage: %s \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; } diff --git a/say.sh b/say.sh new file mode 100755 index 0000000..87ef274 --- /dev/null +++ b/say.sh @@ -0,0 +1,6 @@ +#!/bin/sh +./sam_player r out.wav "$@" +oggenc --quiet -q3 -o out.ogg out.wav +play -q out.ogg +rm out.wav out.ogg + -- cgit v1.2.3