Browse Source

tirar verbose desnecessários

master
bruno 1 year ago
parent
commit
5580596c2c
  1. 1
      agi.c
  2. 128
      speech.c

1
agi.c

@ -212,7 +212,6 @@ int agi_verbose_all_param(s_agi_parameter *param){
while(param != NULL){
char str[300];
snprintf( str, 300, "VERBOSE \"DEBUG (%s: %s)\" \n", (param->key == NULL ? " " : param->key), (param->value == NULL ? "NULL" : param->value ) );
agi_clear_response( agi_command(str) );

128
speech.c

@ -19,7 +19,6 @@
#include <errno.h>
#include <signal.h>
#define GOOGLE_KEY "AIzaSyBxwBNxj9qKoG_U9bH9eLouzfhRtr6AdWc"
struct b_audio {
char *bytes;
@ -63,19 +62,9 @@ int copy_to_struct( struct b_audio *b_flac, char *str, size_t p );
char *http_content(CURL *curl, struct b_audio *b_flac);
size_t response_curl(void *contents, size_t size, size_t nmemb, void *userp);
/* `make time` para compilar esse trecho */
#ifdef TIME_SPEECH
static void displayProcessTimes( const char *msg, int restart );
#endif
int main(){
#ifdef TIME_SPEECH
AGI_NORESPONSE("VERBOSE \"CLOCKS_PER_SEC=%ld sysconf(_SC_CLK_TCK)=%ld\"\n",
(long) CLOCKS_PER_SEC, sysconf(_SC_CLK_TCK));
displayProcessTimes("Início do programa: ", 0);
#endif
int main(){
s_agi_parameter *param_agi = NULL;
s_agi_return *response = NULL;
@ -86,10 +75,6 @@ int main(){
define_variable( "utterance", "-1");
define_variable( "confidence", "-1");
/* if(strlen(GOOGLE_KEY) < 2){
AGI_NORESPONSE("VERBOSE \"Chave do goole está faltando. Terminando AGI.\" \n");
exit(-1);
}*/
if( bin_flac() == -1 ){
AGI_NORESPONSE("VERBOSE \"Não foi encontrado do binário flac. Terminando AGI.\" \n");
@ -108,23 +93,8 @@ int main(){
}
agi_clear_response( response );
// if( create_temporary_file() == -1){
// AGI_NORESPONSE( "VERBOSE \"Não foi possível criar um arquivo temporário. Programa terminado\" \n" );
// exit( -1 );
// }
// struct timespec tm;
// if(-1 == clock_gettime( CLOCK_REALTIME_COARSE, &tm)){
// AGI_NORESPONSE( "VERBOSE \"Não foi possível obter o tempo clock_gettime\" \n" );
// exit(-1);
// }
snprintf( name_audio, SIZE_NAME_AUDIO, "/tmp/speech_%s", uniqueid);
#ifdef TIME_SPEECH
displayProcessTimes("Antes do record: ", 1);
#endif
response = agi_command( "RECORD FILE \"%s\" sln \"%s\" \"%s\" %s \"%s\" \n",
name_audio,
intkey,
@ -139,19 +109,13 @@ int main(){
exit(-1);
}
#ifdef TIME_SPEECH
displayProcessTimes("Depois do record (recomeçar):", 0);
#endif
int result_flac = covert_flac( );
if( result_flac == -1 ){
AGI_NORESPONSE( "VERBOSE \"Não foi possível converter o áudio. Programa terminando\"\n");
exit(-1);
}
struct b_audio *b_flac = get_audio_bytes( );
// b_flac->nmemb_encode = (size_t)Base64encode_len( (int)b_flac->nmemb );
// b_flac->bytes_encode = calloc( 1, b_flac->nmemb_encode + 1 );
// Base64encode( b_flac->bytes_encode, b_flac->bytes, b_flac->nmemb );
struct response_google *p = send_network( param_agi, b_flac );
@ -234,13 +198,8 @@ int main(){
exit(-1);
}
define_variable("confidence", g);
AGI_NORESPONSE( "VERBOSE \"TERMINOU speech\"\n" );
close(fd_tmpaudio);
#ifdef TIME_SPEECH
displayProcessTimes("Depois record até termino", 1);
#endif
return 0;
}
@ -307,7 +266,6 @@ int verify_param_asterisk( s_agi_parameter *param ){
else{
strncpy( timeout, "s=3", sizeof timeout);
}
// AGI_NORESPONSE("VERBOSE \"timeout %s\" \n", timeout);
// agi_arg_2 - key
@ -318,7 +276,6 @@ int verify_param_asterisk( s_agi_parameter *param ){
else{
strncpy(intkey, "", sizeof intkey);
}
// AGI_NORESPONSE("VERBOSE \"intkey %s\" \n", intkey) ;
// agi_arg_3 NOBEEP
value = get_param_n( param, 3 );
@ -333,7 +290,6 @@ int verify_param_asterisk( s_agi_parameter *param ){
else{
strncpy( beep, "BEEP", 5);
}
// AGI_NORESPONSE( "VERBOSE \"beep %s\" \n", beep);
// agi_arg_4 = tempo absoluto em milisegundos
@ -353,26 +309,13 @@ int verify_param_asterisk( s_agi_parameter *param ){
else{
strncpy( abs_timeout, "5000", 5 );/* valor default */
}
// AGI_NORESPONSE("VERBOSE \"abs_timeout %s\" \n", abs_timeout);
return 0;
}
/* Criar arquivo temporário */
//int create_temporary_file(){
/* Esse arquivo será criado no \tmp, porém, se
* asterisk for compilado com systemd, será colocado no
* /tmp/systemd-private-[...]-asterisk.service-[..]
*/
/* strcpy(name_audio, "/tmp/ast_audio_XXXXXX");
fd_tmpaudio = mkstemp( name_audio );
if(fd_tmpaudio == -1){
return -1;
}
return 0;
}*/
/* Converter o audio sln -> flac */
int covert_flac( ){
@ -380,7 +323,6 @@ int covert_flac( ){
snprintf( str_convert, sizeof str_convert, "%s -8 --totally-silent --channels=1 --endian=little --sign=signed --bps=16 --force-raw-format --sample-rate=8000 %s.sln", flac, name_audio );
// AGI_NORESPONSE("VERBOSE \"-%s\"\n", str_convert);
return system( str_convert );
}
@ -433,42 +375,6 @@ struct b_audio * get_audio_bytes(){
}
}while(1);
// FILE *fd_ = fopen("/tmp/debug_send", "w+");
// if(fd_ == NULL){
// AGI_NORESPONSE( "VERBOSE \"erro debug%d\"\n", errno );
// exit(-1);
// }
// fwrite(b_flac->bytes_encode, 1, b_flac->nmemb, fd_);
/* char full_path_name_audio[4096];
snprintf( full_path_name_audio, 512, "%s.flac", name_audio);
char bytes[MAX_BYTES];
FILE *fd_audio;
fd_audio = fopen( full_path_name_audio, "r");
if(fd_audio == NULL){
AGI_NORESPONSE("VERBOSE \"Não pode abrir o arquivo %s.flac\"\n", name_audio);
}
struct b_audio *b_flac = calloc( 1, sizeof( struct b_audio ) );
b_flac->bytes = calloc(1, MAX_BYTES);
if( b_flac->bytes == NULL ){
AGI_NORESPONSE("VERBOSE \"Calloc retornou NULL. Programa terminado\"\n");
exit(-1);
}
b_flac->nmemb = MAX_BYTES;
size_t nmemb;
while( !feof(fd_audio) || ferror(fd_audio) ){
nmemb = fread( bytes, sizeof( char ), MAX_BYTES, fd_audio);
if( nmemb == 0 ){
continue;
}
size_t point_bytes = b_flac->nmemb;
b_flac->nmemb += nmemb;
b_flac->bytes = realloc( b_flac->bytes, b_flac->nmemb );
if( b_flac->bytes == NULL ){
AGI_NORESPONSE("VERBOSE \"Calloc retornou NULL. Programa terminado\"\n");
exit(-1);
}
strcpy( &b_flac->bytes[point_bytes], bytes );
}*/
return b_flac;
}
@ -488,7 +394,6 @@ struct response_google *send_network( s_agi_parameter *param_agi, struct b_audi
char url[256];
snprintf(url, 256, "http://144.22.132.187/integracao/index.php?method=recognize&key=%s&login=user.api&senha=rmt46Pws@&params=%s", get_param_value(param_agi, "agi_uniqueid"), get_param_n(param_agi, 5));
AGI_NORESPONSE("VERBOSE \"%s\"\n",url);
curl_easy_setopt(curl, CURLOPT_URL, url);
char *content = NULL;
@ -500,14 +405,11 @@ struct response_google *send_network( s_agi_parameter *param_agi, struct b_audi
curl_easy_setopt( curl, CURLOPT_POSTFIELDS, content );
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, response_curl);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)http_response);
AGI_NORESPONSE("VERBOSE \"enviar api\"\n");
res = curl_easy_perform(curl);
if(res == CURLE_OK){
AGI_NORESPONSE("VERBOSE \"curl == CURLE_OK \"\n");
return http_response;
}
AGI_NORESPONSE("VERBOSE \"curl != CURLE_OK \"\n");
exit(-1);
}
@ -578,27 +480,3 @@ char *http_content(CURL *curl, struct b_audio *b_flac){
return content;
}
#ifdef TIME_SPEECH
static void displayProcessTimes(const char *msg, int restart)
{
struct tms t;
clock_t clockTime;
static long clockTicks;
if (clockTicks == restart) { /* Fetch clock ticks on first call */
clockTicks = sysconf(_SC_CLK_TCK);
if (clockTicks == -1)
exit(-1);
}
clockTime = clock();
if (clockTime == -1)
exit(-1);
AGI_NORESPONSE("VERBOSE \"%s: return: %ld clocks-per-sec (%.6lf secs)\"\n", msg,
(long) clockTime, (double) clockTime / CLOCKS_PER_SEC);
}
#endif

Loading…
Cancel
Save