Megaphone_TTS.c 2.7 KB
#include <stdio.h>
#include "JZsdkLib.h"
#include "DeviceInfo/DeviceInfo.h"
#include "Megaphone/TTS/Espeak_tts/Espeak_tts.h"

#include "./iflytek_1/iflytek_1.h"
#include "./iflytek_2/iflytek_2.h"

#include "version_choose.h"

static int g_Megaphone_TTS_tone = 0x01;
static int g_Megaphone_TTS_NormalVolume = 100;  //生成的tts原音量
static int g_Megaphone_TTS_speed = 0x32;
static int g_tts_add = JZ_FLAGCODE_OFF;			//追加声音
/*********
 * 
 *  tts初始化
 * 
**********/
T_JZsdkReturnCode Megaphone_TTS_Init()
{

	//根据不同的喊话器初始化不同的TTS库

#ifdef IFLAY_TTS_1_CONFIG_STATUS_ON
	//讯飞初始化
	Iflytek_1_Init();
#endif

#ifdef ESPEAK_TTS_CONFIG_STATUS_ON

	//海外固件,外语初始化
	Espeak_init();

#endif

#ifdef IFLAY_TTS_2_CONFIG_STATUS_ON
	//讯飞初始化
	Iflytek_2_Init();
#endif

	JZSDK_LOG_DEBUG("Megaphone_TTS_Init");
}


/*********
 * 	
 *  TTS销毁
 * 	
 * *********/
T_JZsdkReturnCode Megaphone_TTS_DeInit()
{
#ifdef IFLAY_TTS_2_CONFIG_STATUS_ON
	//讯飞初始化
	Iflytek_2_DeInit();
#endif

}



/*********
 * 
 *  TTSPLAY
 * 
 * 
**********/
T_JZsdkReturnCode Megaphone_Tts_Play(unsigned char *str, unsigned int str_len, int ReplyFlag)
{
#ifdef IFLAY_TTS_1_CONFIG_STATUS_ON
	
	//判断音色
	int tone = TTS_Get_tone();
   	if (tone >= 0x00 && tone <= 0x36)
    {
		return Iflytek_1_Play(str, str_len, ReplyFlag);
	}
	else
	{
		return Espeak_tts(str ,str_len);
	}

#endif	

#ifdef IFLAY_TTS_2_CONFIG_STATUS_ON

	return Iflytek_2_Play(str, str_len, ReplyFlag);

#endif
	
	return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}











/*********
 * 
 *  获取生成的tts音量
 * 
 * 
**********/
int TTS_Get_NormalVolume()
{
    return g_Megaphone_TTS_NormalVolume;
}

/*********
 * 
 *  获取音色
 * 
 * 
**********/
int TTS_Get_tone()
{
	return g_Megaphone_TTS_tone;
}

/*********
 * 
 *  获取语速
 * 
 * 
**********/
int TTS_Get_speed()
{
	return g_Megaphone_TTS_speed;
}

/*********
 * 
 *  获取追加音色
 * 
 * 
**********/
int TTS_Get_TTS_AppendTone()
{
    return g_tts_add;
}


/*********
 * 
 *  设置生成的tts音量
 * 
 * 
**********/
int TTS_Set_NormalVolume(int value)
{
	g_Megaphone_TTS_NormalVolume = value;
    return g_Megaphone_TTS_NormalVolume;
}

/*********
 * 
 *  设置音色
 * 
 * 
**********/
int TTS_Set_tone(int value)
{	
	JZSDK_LOG_INFO("设置音色 %d", value);
	g_Megaphone_TTS_tone = value;
	return g_Megaphone_TTS_tone;
}

/*********
 * 
 *  设置语速
 * 
 * 
**********/
int TTS_Set_speed(int value)
{	
	g_Megaphone_TTS_speed = value;
	return g_Megaphone_TTS_speed;
}

/*********
 * 
 *  设置追加音色
 * 
 * 
**********/
int TTS_Set_TTS_AppendTone(int value)
{	
	JZSDK_LOG_INFO("设置追加音色%d",value);
	g_tts_add = value;
    return g_tts_add;
}