当前位置: 首页 > news >正文

网站建设编程时注意事项crm系统的销售管理功能包括

网站建设编程时注意事项,crm系统的销售管理功能包括,北京住房保障建设投资中心网站,新冠最新发布会一. 基础知识 Android 从1.6 版本开始支持Text To Speech #xff0c;使用的是Pico 语音合成引擎#xff0c;但是只支持 English 、 French 、 German 、 Italian 和 Spanish 五大语言#xff0c;暂时没有对中文提供支持。因此使用 Android 默认的 TTS Engine 是没法朗读…一. 基础知识 Android 从1.6 版本开始支持Text To Speech 使用的是Pico 语音合成引擎但是只支持 English 、 French 、 German 、 Italian 和 Spanish 五大语言暂时没有对中文提供支持。因此使用 Android 默认的 TTS Engine 是没法朗读中文的。 不过有开源项目 eyes-free http://code.google.com/p/eyes-free/ Android 上的 TTS 功能应该也是基于这个开源项目提供的除了提供 Pico 外还把支持其他更多语言语音合成的另一个 TTS 引擎 eSpeak 也移植到了 Android 平台其中就支持中文的语音合成。 因此在安装了 eyes-free 提供的 TTS Service Extended 的 apk 后就可以在程序中使用 eyes-free 提供的 TTS library 并把 TTS Engine 设置为不是默认的 Pico 而是 eSpeak 就可以实现朗读中文了。不过经过测试实际的效果还是很差的只能说勉强可以朗读而已。 二. 实例分析 下面我们就通过一个具体的例子来说明朗读中文的实现过程。 希望实现的效果和之前的类似 图 1 实现效果图 上面一个输入框点击 “我说” 按钮则朗读上面的文字内容。 首先我们要到 eyes-free 那下载需要的 TTS library 的 jar 包 (http://code.google.com/p/eyes-free/downloads/detail?nameTTS_library_stub_3.0_market.jarcan2q) 。 创建一个 Android 工程工程名为 NiHaoTTS 并且把下载的 jar 包放在 assets 文件夹下。右键点击工程选择 properties Java Build Path Libraries Add JARs, 往工程中添加进 assets 下的 jar 包 ,如下图所示 图2 添加 TTS library jar 包 其中 main.xml文件很简单如下所示 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android android:orientationvertical android:layout_widthfill_parent android:layout_heightfill_parent EditText android:idid/ttstext android:layout_widthfill_parent android:layout_heightwrap_content android:text你好我能说中文 /EditText Button android:idid/ttsbtn android:layout_widthfill_parent android:layout_heightwrap_content android:text我说 android:enabledfalse /Button /LinearLayout Java 文件的编写 Java 文件和之前的类似只是因为使用了 eyes-free 的 TTS API 而不是 Android 自带的 TTS API 因此有些许改变。相关的 API 参考http://eyes-free.googlecode.com/svn/trunk/documentation/tts/com/google/tts/package-summary.html 其中我们可以看到基本和 Android 的 API 类似其中一个明显的区别是创建 TTS 对象这里使用的是TextToSpeechBeta 而之前我们使用的是 TextToSpeech 。 Java完整的代码为 [java] view plain copy print ? public class NiHaoTTS extends Activity implements OnInitListener{      /** Called when the activity is first created. */      private Button mBtn;      private EditText mText;      //使用com.google.tts包中的TextToSpeechBeta      private TextToSpeechBeta mTTS;            private static final String TAG  TTS Demo;        private static final int REQ_TTS_STATUS_CHECK  0;              Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);                    //检查TTS数据是否已经安装并且可用           Intent checkIntent  new Intent();          checkIntent.setAction(TextToSpeechBeta.Engine.ACTION_CHECK_TTS_DATA);          startActivityForResult(checkIntent, REQ_TTS_STATUS_CHECK);                    mText  (EditText)findViewById(R.id.ttstext);          mBtn  (Button) findViewById(R.id.ttsbtn);          mBtn.setOnClickListener(new OnClickListener() {                            Override              public void onClick(View v) {                  // TODO Auto-generated method stub                  String ttsText  mText.getText().toString();                  if(ttsText ! )                  {                      //读取文本框中的中文                      mTTS.speak(ttsText, TextToSpeechBeta.QUEUE_ADD, null);                  }              }          });      }    //实现TTS初始化接口         Override      public void onInit(int status, int version) {          // TODO Auto-generated method stub          Log.v(TAG, version    String.valueOf(version));          //判断TTS初始化的返回版本号如果为-1表示没有安装对应的TTS数据          if(version  -1)          {              //提示安装所需的TTS数据               alertInstallEyesFreeTTSData();          }          else          {              //TTS Engine初始化完成               if(status  TextToSpeechBeta.SUCCESS)              {                  Log.v(TAG, success to init tts);                  //设置TTS引擎com.google.tts即eSpeak支持的语言包含中文使用Android系统默认的pico可以设置为com.svox.pico                  mTTS.setEngineByPackageNameExtended(com.google.tts);                  int result  mTTS.setLanguage(Locale.CHINA);                  //设置发音语言                   if(result  TextToSpeechBeta.LANG_MISSING_DATA || result  TextToSpeechBeta.LANG_NOT_SUPPORTED)                  //判断语言是否可用                   {                      Log.v(TAG, Language is not available);                      mBtn.setEnabled(false);                  }                  else                  {                      mTTS.speak(你好,朋友!, TextToSpeechBeta.QUEUE_ADD, null);                      mBtn.setEnabled(true);                  }              }              else              {                  Log.v(TAG, failed to init tts);              }          }      }      protected  void onActivityResult(int requestCode, int resultCode, Intent data) {          if(requestCode  REQ_TTS_STATUS_CHECK)          {              switch (resultCode) {              case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_PASS:                  //这个返回结果表明TTS Engine可以用              {                  //使用的是TextToSpeechBeta                  mTTS  new TextToSpeechBeta(this, this);                  Log.v(TAG, TTS Engine is installed!);                                  }                                    break;              case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_BAD_DATA:                  //需要的语音数据已损坏               case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_MISSING_DATA:                  //缺少需要语言的语音数据               case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:                  //缺少需要语言的发音数据               {                  //这三种情况都表明数据有错,重新下载安装需要的数据                  Log.v(TAG, Need language stuff:resultCode);                  Intent dataIntent  new Intent();                  dataIntent.setAction(TextToSpeechBeta.Engine.ACTION_INSTALL_TTS_DATA);                  startActivity(dataIntent);              }                  break;              case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_FAIL:                  //检查失败               default:                  Log.v(TAG, Got a failure. TTS apparently not available);                  break;              }          }          else          {              //其他Intent返回的结果           }      }      //弹出对话框提示安装所需的TTS数据       private void alertInstallEyesFreeTTSData()      {          Builder alertInstall  new AlertDialog.Builder(this)              .setTitle(缺少需要的语音包)              .setMessage(下载安装缺少的语音包)              .setPositiveButton(确定, new DialogInterface.OnClickListener() {                                    Override                  public void onClick(DialogInterface dialog, int which) {                      // TODO Auto-generated method stub                      //下载eyes-free的语音数据包                      String ttsDataUrl  http://eyes-free.googlecode.com/files/tts_3.1_market.apk;                      Uri ttsDataUri  Uri.parse(ttsDataUrl);                      Intent ttsIntent  new Intent(Intent.ACTION_VIEW, ttsDataUri);                      startActivity(ttsIntent);                  }              })              .setNegativeButton(取消, new DialogInterface.OnClickListener() {                                    Override                  public void onClick(DialogInterface dialog, int which) {                      // TODO Auto-generated method stub                      finish();                  }              });              alertInstall.create().show();                }            Override      protected void onDestroy() {          // TODO Auto-generated method stub          super.onDestroy();          if(mTTS!null){              mTTS.shutdown();          }      }      Override      protected void onPause() {          // TODO Auto-generated method stub          super.onPause();          if(mTTS ! null)          {              mTTS.stop();          }      }        }   public class NiHaoTTS extends Activity implements OnInitListener{ /** Called when the activity is first created. */ private Button mBtn; private EditText mText; //使用com.google.tts包中的TextToSpeechBeta private TextToSpeechBeta mTTS; private static final String TAG TTS Demo; private static final int REQ_TTS_STATUS_CHECK 0; Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //检查TTS数据是否已经安装并且可用 Intent checkIntent new Intent(); checkIntent.setAction(TextToSpeechBeta.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent, REQ_TTS_STATUS_CHECK); mText (EditText)findViewById(R.id.ttstext); mBtn (Button) findViewById(R.id.ttsbtn); mBtn.setOnClickListener(new OnClickListener() { Override public void onClick(View v) { // TODO Auto-generated method stub String ttsText mText.getText().toString(); if(ttsText ! ) { //读取文本框中的中文 mTTS.speak(ttsText, TextToSpeechBeta.QUEUE_ADD, null); } } }); } //实现TTS初始化接口 Override public void onInit(int status, int version) { // TODO Auto-generated method stub Log.v(TAG, version String.valueOf(version)); //判断TTS初始化的返回版本号如果为-1表示没有安装对应的TTS数据 if(version -1) { //提示安装所需的TTS数据 alertInstallEyesFreeTTSData(); } else { //TTS Engine初始化完成 if(status TextToSpeechBeta.SUCCESS) { Log.v(TAG, success to init tts); //设置TTS引擎com.google.tts即eSpeak支持的语言包含中文使用Android系统默认的pico可以设置为com.svox.pico mTTS.setEngineByPackageNameExtended(com.google.tts); int result mTTS.setLanguage(Locale.CHINA); //设置发音语言 if(result TextToSpeechBeta.LANG_MISSING_DATA || result TextToSpeechBeta.LANG_NOT_SUPPORTED) //判断语言是否可用 { Log.v(TAG, Language is not available); mBtn.setEnabled(false); } else { mTTS.speak(你好,朋友!, TextToSpeechBeta.QUEUE_ADD, null); mBtn.setEnabled(true); } } else { Log.v(TAG, failed to init tts); } } } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode REQ_TTS_STATUS_CHECK) { switch (resultCode) { case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_PASS: //这个返回结果表明TTS Engine可以用 { //使用的是TextToSpeechBeta mTTS new TextToSpeechBeta(this, this); Log.v(TAG, TTS Engine is installed!); } break; case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_BAD_DATA: //需要的语音数据已损坏 case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_MISSING_DATA: //缺少需要语言的语音数据 case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_MISSING_VOLUME: //缺少需要语言的发音数据 { //这三种情况都表明数据有错,重新下载安装需要的数据 Log.v(TAG, Need language stuff:resultCode); Intent dataIntent new Intent(); dataIntent.setAction(TextToSpeechBeta.Engine.ACTION_INSTALL_TTS_DATA); startActivity(dataIntent); } break; case TextToSpeechBeta.Engine.CHECK_VOICE_DATA_FAIL: //检查失败 default: Log.v(TAG, Got a failure. TTS apparently not available); break; } } else { //其他Intent返回的结果 } } //弹出对话框提示安装所需的TTS数据 private void alertInstallEyesFreeTTSData() { Builder alertInstall new AlertDialog.Builder(this) .setTitle(缺少需要的语音包) .setMessage(下载安装缺少的语音包) .setPositiveButton(确定, new DialogInterface.OnClickListener() { Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //下载eyes-free的语音数据包 String ttsDataUrl http://eyes-free.googlecode.com/files/tts_3.1_market.apk; Uri ttsDataUri Uri.parse(ttsDataUrl); Intent ttsIntent new Intent(Intent.ACTION_VIEW, ttsDataUri); startActivity(ttsIntent); } }) .setNegativeButton(取消, new DialogInterface.OnClickListener() { Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub finish(); } }); alertInstall.create().show(); } Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if(mTTS!null){ mTTS.shutdown(); } } Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); if(mTTS ! null) { mTTS.stop(); } } } 基本和我们之前学过的类似其中不同的地方有 1 TTS 的初始化回调函数多了一个版本号参数 version, publicvoidonInit(intstatus,intversion), 如果返回的版本号version等于 -1则表明还没有安装 eyes-free提供的 TTS Service Extended提示进行下载和安装。 //提示安装所需的TTS 数据 alertInstallEyesFreeTTSData(); 主要就是弹出对话框进行提示然后链接到eyes-free 的网站进行下载对应的apk 。 //弹出对话框提示安装所需的TTS 数据 privatevoidalertInstallEyesFreeTTSData() { Builder alertInstall new AlertDialog.Builder(this ) .setTitle( 缺少需要的语音包 ) .setMessage( 下载安装缺少的语音包 ) .setPositiveButton( 确定 , newDialogInterface.OnClickListener() { Override publicvoidonClick(DialogInterface dialog, intwhich) { //TODO Auto-generated method stub //下载 eyes-free的语音数据包 String ttsDataUrl http://eyes-free.googlecode.com/files/tts_3.1_market.apk; Uri ttsDataUri Uri.parse (ttsDataUrl); Intent ttsIntent new Intent(Intent.ACTION_VIEW , ttsDataUri); startActivity(ttsIntent); } }) .setNegativeButton( 取消 , newDialogInterface.OnClickListener() { Override publicvoidonClick(DialogInterface dialog, intwhich) { //TODO Auto-generated method stub finish(); } }); alertInstall.create().show(); } 下载完进行安装然后重新启动程序就可以运行。 2如果已经安装了则可以进设置TTS引擎和需要合成的语言。 //设置 TTS 引擎 com.google.tts即 eSpeak 支持的语言包含中文使用Android系统默认的pico可以设置为com.svox.pico mTTS.setEngineByPackageNameExtended( com.google.tts ); intresult mTTS.setLanguage(Locale. CHINA ); //设置发音语言 其中如果设置为com.google.tts 则表示使用 eSpeak 引擎其包括对中文语音合成的支持。如果设置为 com.svox.pico则表示使用 Pico引擎实际效果就是使用 Android自带的 Pico的效果不过只支持 5中语言不支持中文。 除了这两块其他和我们之前的程序基本一样。 然后就可以运行程序。因为模拟器开始时没有安装需要的eyes-free 的 TTS Service Extended 的 apk因此会弹出提示对话框点击确定开始下载下载完进行安装如下图所示。 图3 安装eyes-free的TTS 安装完会在应用程序中看到对应的图标并且在TTS 的设置中也会增加 eSpeak TTS一项如下图所示 图4 安装了eyes-free的TTS 安装完后就可以再次打开NiHaoTTS 程序这时会有个选择询问使用哪个 TTS选择第二项然后就可以在输入框中输入中文来朗读了。 图5 选择TTS 不过经过简单测试就知道了中文朗读的效果基本没法实际使用的。 文章对应的完整代码例子可以在这里下载 http://download.csdn.net/source/3237373
http://www.dnsts.com.cn/news/119025.html

相关文章:

  • 网站互动交流怎么做网站的建设公司哪个好
  • 做盗链网站网络营销策略案例分析
  • html旅游网站页面设计模板企业邮箱有什么作用
  • 旅游景点网站建设方案wordpress调用外部数据库连接
  • 州网站建设要找嘉艺网络没有网站想做个链接页面怎么做
  • 济南企业网站设计公司wordpress响应式图片功能
  • 张家界官方网站wordpress社交登陆插件
  • 怎么做能够让网站流量大高德地图是国产软件吗
  • 公司网页网站建设ppt模板下载网站导航栏下拉框怎么做
  • 网站多服务器建设免费开网店的app
  • 网站留言程序怎么做做汽车保养的网站
  • 网站域名实名认证甘肃网站建设专家
  • 台州快速建站公司百度指数怎样使用
  • 通辽做网站有没有崇左市城市投资建设有限公司网站
  • 百度视频免费高清网站做外贸上哪些网站找客户
  • 西宁网络信息 网站建设网站开发 弹窗
  • 婚庆公司网站模板建站的步骤
  • seo网站打开慢如何网站里做照片
  • 网站建设中asp文件网站开发流程中客户的任务是什么
  • 商标 做网站 是几类网页游戏破解版
  • 莱州免费发布信息的网站平台威海住房和城乡建设局网站
  • 做网站有一行一行写代码的吗广西桂林旅游攻略自由行最佳线路
  • 个人网站怎么做打赏网站主页设计教程
  • 青岛找网站建设公司深圳高端包装盒设计
  • 网站开发 质保金下载的asp网站怎么打开
  • 容城县网站开发做网站图片多少钱
  • wordpress禁用自定义医疗网站seo怎么做
  • 安顺建设工程造价管理网站电子商务网站设计案例
  • 洪栾单页网站建设怎么注册自己的网站
  • 网站主题分析湖北响应式网站建设费用