diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2012-06-14 21:48:26 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2012-06-14 21:48:26 +0200 |
| commit | 9472ce4c6ca0892ba8fcf0b77034cae9f33247c5 (patch) | |
| tree | d6703ae8e3f97e19edaaac3e9f40e63e0735d7c1 | |
| parent | a33518b5353b33935a255680ba8c7ad40c9980cc (diff) | |
| -rw-r--r-- | sam_player.c | 18 | ||||
| -rwxr-xr-x | say.sh | 6 |
2 files changed, 19 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; } @@ -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 + |
