Android Speech To Text(STT)

Slides:



Advertisements
Similar presentations
第二章 Android 简单界面开发 倚动软件工厂实验室 View 组件介绍 布局管理器 自定义组件 目录 CONTENTS.
Advertisements

第13章 繪圖與多媒體 13-1 顯示圖檔-行動相簿 13-2 音樂播放-音樂播放器 13-3 影片播放-視訊播放器
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
设计模式可以帮助我们改善系统的设计,增强 系统的健壮性、可扩展性,为以后铺平道路。
第二章 JAVA语言基础.
類別與物件 Class & Object.
Android + BLE 建國科技大學 資管系 饒瑞佶 2017/3 v1.
Android + Web Service 建國科技大學 資管系 饒瑞佶 2017/3 V1.
ArrayAdapter & Spinner
Android + NFC 建國科技大學 資管系 饒瑞佶 2017/3 v1.
Location Based Services - LBS
厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日
Chapter 4 手機控制項應用.
實驗四:單位轉換程式.
第7章 Android文件与本地数据库(SQLite)
Chapter 13 Android 實戰演練.
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
使用Android控制Arduino 史先强
第10章 App微信分享的实现 倚动实验室.
Android資料庫處理 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第9章 位置服务与地图应用.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
第8章 Android内容提供者(ContentProvider)应用
Chapter 6 Advanced UI Design.
Android智慧型手機程式設計實務應用班
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
CH10 對話框與分頁.
Chapter 6 進階UI設計.
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
Android 基礎.
實驗十四:顯示與控制地圖.
RecyclerView and CardView
C#面向对象程序设计 $7 继承和多态性.
多視窗資料傳遞.
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
Location Based Services - LBS
Java程序设计 第2章 基本数据类型及操作.
Ch02-基礎語法.
生活智慧王 樹德科技大學 資訊工程系 指導教授 : 陳毓璋 教授 小組成員: 劉上緯 翁維廷 洪文財.
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Android Studio介面設計 建國科技大學資管系 饒瑞佶 2016/3 V1.
Chapter 5 Basic UI Design.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
補間動畫 (Tween Animation) 靜宜大學資管系 楊子青
第二章 Java基本语法 讲师:复凡.
第二章 Java语法基础.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
龍老師我不會Debug QQ.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
RecyclerView and CardView
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
讀取網路資料及JSON開放資料 靜宜大學資管系 楊子青
第二章 Java基础语法 北京传智播客教育
Presentation transcript:

Android Speech To Text(STT) 建國科技大學 資管系 饒瑞佶 2017/10 V1

語音轉文字 Speech To Text 透過Google的雲端服務,所以需要開啟網路 可以讓使用者透過語音控制

UI Design

<RelativeLayout xmlns:android="http://schemas. android xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_above="@+id/btnSpeakContainer" android:layout_alignParentTop="true" android:layout_marginBottom="20dp" android:padding="20dp"> <TextView android:id="@+id/voiceInput" android:forceHasOverlappingRendering="true" android:textAppearance="@style/TextAppearance.AppCompat.Medium" /> </ScrollView> 用來顯示語音轉文字的結果

點選麥克風開始說話 <LinearLayout android:id="@+id/btnSpeakContainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="#f5f5f5" android:gravity="center_horizontal" android:orientation="vertical" android:padding="20dp"> <ImageButton android:id="@+id/btnSpeak" android:layout_width="wrap_content" android:background="@null" android:padding="16dp" android:scaleType="fitCenter" android:src="@mipmap/ic_microphone_2" /> <TextView android:id="@+id/textView" android:layout_below="@id/btnSpeak" android:layout_margin="10dp" android:text="請點麥克風並開始說話" /> </LinearLayout> </RelativeLayout> 點選麥克風開始說話

result

Code

// 設定取得語音服務 private static final int REQ_CODE_SPEECH_INPUT = 100; // 回傳結果textview private TextView mVoiceInputTv; // 麥克風按鈕 private ImageButton mSpeakBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mVoiceInputTv = (TextView) findViewById(R.id.voiceInput); mSpeakBtn = (ImageButton) findViewById(R.id.btnSpeak); mSpeakBtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { startVoiceInput(); // 開始講話並辨識 } });

private void startVoiceInput() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "您好,請開始說話!"); try { startActivityForResult(intent, REQ_CODE_SPEECH_INPUT); // 取得結果 } catch (ActivityNotFoundException a) { }

// 處理Intent回傳結果 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQ_CODE_SPEECH_INPUT: { if (resultCode == RESULT_OK && null != data) { ArrayList<String> result = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); mVoiceInputTv.setText(result.get(0)); } break;