Exemple #1
0
void tts_db_clear( TtsDbDataStorageType storage_type, const char* voice_id )
{
   if ( voice_id )
   {
      tts_db_sqlite_destroy_voice( voice_id );
   }
   else
   {
      // Remove the database
      tts_db_sqlite_destroy();
   }

   // Remove the files if exist
   if ( storage_type & __tts_db_data_storage__file )
   {
      char path[TTS_PATH_MAXLEN];
      if ( voice_id )
         snprintf( path, sizeof( path ), "%s//%s//%s", roadmap_path_tts(), TTS_DB_FILES_ROOT_DIR, voice_id );
      else
         snprintf( path, sizeof( path ), "%s//%s", roadmap_path_tts(), TTS_DB_FILES_ROOT_DIR );

      roadmap_log( ROADMAP_INFO, "Removing the TTS fs database at %s", path );
      roadmap_file_rmdir( path, NULL );
   }
}
Exemple #2
0
int roadmap_sound_list_add_buf (RoadMapSoundList list, void* buf, size_t size )
{
   char path[512];
   int file_num = list->count;
   RoadMapFile file;

   if (list->count == MAX_SOUND_LIST) return SND_LIST_ERR_LIST_FULL;

   list->buf_list[list->count] = buf;
   list->buf_list_sizes[list->count] = size;


   /*
    * Temporary solution - write the buffer to the file for further playing
    * AGA
    */
   sprintf( path, "%s/tmp/%d", roadmap_path_tts(), file_num );
   if ( file_num == 0 )
   {
      roadmap_path_create( roadmap_path_parent( path, NULL ) );
   }

   file = roadmap_file_open( path, "w" );
   roadmap_file_write( file, buf, size );
   roadmap_file_close( file );

   strncpy_safe( list->list[list->count], path, 512 );


   list->count++;

   return list->count - 1;
}
Exemple #3
0
void tts_db_generate_path( const char* voice_id, TtsPath* db_path )
{
   static char s_voice_id[TTS_VOICE_MAXLEN] = {0};
   static unsigned long counter = 0;
   char path_suffix[TTS_PATH_MAXLEN];
   const EpochTimeMicroSec* time_now = roadmap_time_get_epoch_us( NULL );


   if ( !db_path )
      return;

   // File name
   snprintf( path_suffix, sizeof( path_suffix ), "%s//%s//%lu-%lu-%lu.%s", TTS_DB_FILES_ROOT_DIR, voice_id,
         time_now->epoch_sec, time_now->usec, counter++, TTS_RESULT_FILE_NAME_EXT );
   // Full path
   roadmap_path_format( db_path->path, TTS_PATH_MAXLEN, roadmap_path_tts(), path_suffix );

   if ( strcmp( s_voice_id, voice_id ) ) // Save io time
   {
      char* parent = roadmap_path_parent( db_path->path, NULL );
      strncpy_safe( s_voice_id, voice_id, TTS_VOICE_MAXLEN );
      // Create path if not exists
      roadmap_path_create( parent );
      free( parent );
   }
}
Exemple #4
0
void tts_android_provider_init( void )
{
   int i;
   TtsProvider provider;

   roadmap_path_format( sgVoicesPath, TTS_PATH_MAXLEN, roadmap_path_tts(), ANDROID_TTS_PROVIDER_VOICES );
   provider.batch_request_limit = 1;
   provider.provider_name = ANDROID_TTS_PROVIDER;
   provider.storage_type = __tts_db_data_storage__file;
   provider.request_cb = _synth_request;
   provider.voices_cfg = sgVoicesPath;
   provider.prepare_cb = WazeTtsManager_Prepare;
   provider.concurrent_limit = -1;

   // Register the android provider
   tts_register_provider( &provider );

   // Initialize the context pool
   for ( i = 0; i < TTS_ACTIVE_REQUESTS_LIMIT; ++i )
   {
      sgCtxPool[i].busy = FALSE;
      sgCtxPool[i].index = i;
   }
}