⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 phonemes.cpp

📁 Mobile STK for Symbian OS V0.1
💻 CPP
字号:
/***************************************************//*! \class Phonemes    \brief STK phonemes table.    This class does nothing other than declare a    set of 32 static phoneme formant parameters    and provide access to those values.    by Perry R. Cook and Gary P. Scavone, 1995 - 2005.*//***************************************************/#include "Phonemes.h"#if !defined(SYMBIAN)#include <iostream>#endifconst char Phonemes :: phonemeNames[32][4] =   {"eee", "ihh", "ehh", "aaa",   "ahh", "aww", "ohh", "uhh",   "uuu", "ooo", "rrr", "lll",   "mmm", "nnn", "nng", "ngg",   "fff", "sss", "thh", "shh",   "xxx", "hee", "hoo", "hah",   "bbb", "ddd", "jjj", "ggg",   "vvv", "zzz", "thz", "zhh"  };const StkFloat Phonemes :: phonemeGains[32][2] =  {{1.0, 0.0},    // eee   {1.0, 0.0},    // ihh   {1.0, 0.0},    // ehh   {1.0, 0.0},    // aaa   {1.0, 0.0},    // ahh   {1.0, 0.0},    // aww   {1.0, 0.0},    // ohh   {1.0, 0.0},    // uhh   {1.0, 0.0},    // uuu   {1.0, 0.0},    // ooo   {1.0, 0.0},    // rrr   {1.0, 0.0},    // lll   {1.0, 0.0},    // mmm   {1.0, 0.0},    // nnn   {1.0, 0.0},    // nng   {1.0, 0.0},    // ngg   {0.0, 0.7},    // fff   {0.0, 0.7},    // sss   {0.0, 0.7},    // thh   {0.0, 0.7},    // shh   {0.0, 0.7},    // xxx   {0.0, 0.1},    // hee   {0.0, 0.1},    // hoo   {0.0, 0.1},    // hah   {1.0, 0.1},    // bbb   {1.0, 0.1},    // ddd   {1.0, 0.1},    // jjj   {1.0, 0.1},    // ggg   {1.0, 1.0},    // vvv   {1.0, 1.0},    // zzz   {1.0, 1.0},    // thz   {1.0, 1.0}     // zhh  };const StkFloat Phonemes :: phonemeParameters[32][4][3] =  {{  { 273, 0.996,  10},       // eee (beet)      {2086, 0.945, -16},       {2754, 0.979, -12},       {3270, 0.440, -17}},   {  { 385, 0.987,  10},       // ihh (bit)      {2056, 0.930, -20},      {2587, 0.890, -20},       {3150, 0.400, -20}},   {  { 515, 0.977,  10},       // ehh (bet)      {1805, 0.810, -10},       {2526, 0.875, -10},       {3103, 0.400, -13}},   {  { 773, 0.950,  10},       // aaa (bat)      {1676, 0.830,  -6},      {2380, 0.880, -20},       {3027, 0.600, -20}},        {  { 770, 0.950,   0},       // ahh (father)      {1153, 0.970,  -9},      {2450, 0.780, -29},      {3140, 0.800, -39}},   {  { 637, 0.910,   0},       // aww (bought)      { 895, 0.900,  -3},      {2556, 0.950, -17},      {3070, 0.910, -20}},   {  { 637, 0.910,   0},       // ohh (bone)  NOTE::  same as aww (bought)      { 895, 0.900,  -3},      {2556, 0.950, -17},      {3070, 0.910, -20}},   {  { 561, 0.965,   0},       // uhh (but)      {1084, 0.930, -10},       {2541, 0.930, -15},       {3345, 0.900, -20}},       {  { 515, 0.976,   0},       // uuu (foot)      {1031, 0.950,  -3},      {2572, 0.960, -11},      {3345, 0.960, -20}},   {  { 349, 0.986, -10},       // ooo (boot)      { 918, 0.940, -20},      {2350, 0.960, -27},      {2731, 0.950, -33}},   {  { 394, 0.959, -10},       // rrr (bird)      {1297, 0.780, -16},      {1441, 0.980, -16},      {2754, 0.950, -40}},   {  { 462, 0.990,  +5},       // lll (lull)      {1200, 0.640, -10},      {2500, 0.200, -20},      {3000, 0.100, -30}},        {  { 265, 0.987, -10},       // mmm (mom)      {1176, 0.940, -22},      {2352, 0.970, -20},      {3277, 0.940, -31}},   {  { 204, 0.980, -10},       // nnn (nun)      {1570, 0.940, -15},      {2481, 0.980, -12},      {3133, 0.800, -30}},   {  { 204, 0.980, -10},       // nng (sang)    NOTE:: same as nnn      {1570, 0.940, -15},      {2481, 0.980, -12},      {3133, 0.800, -30}},   {  { 204, 0.980, -10},       // ngg (bong)    NOTE:: same as nnn      {1570, 0.940, -15},      {2481, 0.980, -12},      {3133, 0.800, -30}},        {  {1000, 0.300,   0},       // fff      {2800, 0.860, -10},      {7425, 0.740,   0},      {8140, 0.860,   0}},   {  {0,    0.000,   0},       // sss      {2000, 0.700, -15},      {5257, 0.750,  -3},       {7171, 0.840,   0}},   {  { 100, 0.900,   0},       // thh      {4000, 0.500, -20},      {5500, 0.500, -15},      {8000, 0.400, -20}},   {  {2693, 0.940,   0},       // shh      {4000, 0.720, -10},      {6123, 0.870, -10},      {7755, 0.750, -18}},   {  {1000, 0.300, -10},       // xxx           NOTE:: Not Really Done Yet      {2800, 0.860, -10},      {7425, 0.740,   0},      {8140, 0.860,   0}},   {  { 273, 0.996, -40},       // hee (beet)    (noisy eee)      {2086, 0.945, -16},       {2754, 0.979, -12},       {3270, 0.440, -17}},   {  { 349, 0.986, -40},       // hoo (boot)    (noisy ooo)      { 918, 0.940, -10},      {2350, 0.960, -17},      {2731, 0.950, -23}},   {  { 770, 0.950, -40},       // hah (father)  (noisy ahh)      {1153, 0.970,  -3},      {2450, 0.780, -20},      {3140, 0.800, -32}},        {  {2000, 0.700, -20},       // bbb           NOTE:: Not Really Done Yet      {5257, 0.750, -15},      {7171, 0.840,  -3},       {9000, 0.900,   0}},   {  { 100, 0.900,   0},       // ddd           NOTE:: Not Really Done Yet      {4000, 0.500, -20},      {5500, 0.500, -15},      {8000, 0.400, -20}},   {  {2693, 0.940,   0},       // jjj           NOTE:: Not Really Done Yet      {4000, 0.720, -10},      {6123, 0.870, -10},      {7755, 0.750, -18}},   {  {2693, 0.940,   0},       // ggg           NOTE:: Not Really Done Yet      {4000, 0.720, -10},      {6123, 0.870, -10},      {7755, 0.750, -18}},        {  {2000, 0.700, -20},       // vvv           NOTE:: Not Really Done Yet      {5257, 0.750, -15},      {7171, 0.840,  -3},       {9000, 0.900,   0}},   {  { 100, 0.900,   0},       // zzz           NOTE:: Not Really Done Yet      {4000, 0.500, -20},      {5500, 0.500, -15},      {8000, 0.400, -20}},   {  {2693, 0.940,   0},       // thz           NOTE:: Not Really Done Yet      {4000, 0.720, -10},      {6123, 0.870, -10},      {7755, 0.750, -18}},   {  {2693, 0.940,   0},       // zhh           NOTE:: Not Really Done Yet      {4000, 0.720, -10},      {6123, 0.870, -10},      {7755, 0.750, -18}}  };Phonemes :: Phonemes(void){}Phonemes :: ~Phonemes(void){}const char *Phonemes :: name( unsigned int index ){  if ( index > 31 ) { #if !defined(SYMBIAN)   std::ostringstream error;    error << "Phonemes::name: index is greater than 31!";    handleError( error.str(), StkError::WARNING );#endif    return 0;  }  return phonemeNames[index];}StkFloat Phonemes :: voiceGain( unsigned int index ){  if ( index > 31 ) {#if !defined(SYMBIAN)    std::ostringstream error;    error << "Phonemes::voiceGain: index is greater than 31!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  return phonemeGains[index][0];}StkFloat Phonemes :: noiseGain( unsigned int index ){  if ( index > 31 ) {#if !defined(SYMBIAN)    std::ostringstream error;    error << "Phonemes::noiseGain: index is greater than 31!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  return phonemeGains[index][1];}StkFloat Phonemes :: formantFrequency( unsigned int index, unsigned int partial ){#if !defined(SYMBIAN)  std::ostringstream error;#endif  if ( index > 31 ) {#if !defined(SYMBIAN)    error << "Phonemes::formantFrequency: index is greater than 31!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  if ( partial > 3 ) {#if !defined(SYMBIAN)    error << "Phonemes::formantFrequency: partial is greater than 3!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  return phonemeParameters[index][partial][0];}StkFloat Phonemes :: formantRadius( unsigned int index, unsigned int partial ){#if !defined(SYMBIAN)  std::ostringstream error;#endif  if ( index > 31 ) {#if !defined(SYMBIAN)    error << "Phonemes::formantRadius: index is greater than 31!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  if ( partial > 3 ) {#if !defined(SYMBIAN)    error << "Phonemes::formantRadius: partial is greater than 3!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  return phonemeParameters[index][partial][1];}StkFloat Phonemes :: formantGain( unsigned int index, unsigned int partial ){#if !defined(SYMBIAN)  std::ostringstream error;#endif  if ( index > 31 ) {#if !defined(SYMBIAN)    error << "Phonemes::formantGain: index is greater than 31!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  if ( partial > 3 ) {#if !defined(SYMBIAN)    error << "Phonemes::formantGain: partial is greater than 3!";    handleError( error.str(), StkError::WARNING );#endif    return 0.0;  }  return phonemeParameters[index][partial][2];}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -