顯示具有 Android 標籤的文章。 顯示所有文章
顯示具有 Android 標籤的文章。 顯示所有文章

2024年11月23日 星期六

以 OpenAI Whisper 轉語音備忘錄為字幕格式逐字稿

2024年11月23日 星期六
有老師問到,平常都用 iPhone 在錄音,也可以使用 OpenAI Whisper 來將錄音轉為逐字稿嗎?

使用我建構在 Google Colab 中的 OpenAI Whisper (或 Faster Whisper) ,只要有網頁瀏覽器,基本上就可以使用。它們的聲音來源接受影音網站公開分享的網址,也可用電腦或是裝置中的影音檔案。所以手機使用 OpenAI Whisper 來將錄音轉為逐字稿的關鍵,是將錄音工具中的語音儲存為檔案。

語音備忘錄儲存到檔案

以 iOS 中內鍵的錄音工具「語音備忘錄」來說,錄好的語音怎麼變成可上載的檔案?

  • 開啟「語音備忘錄」
  • 在錄音清單中,按一下想儲存的錄音。
  • 按一下標題右側「三個點點」的圖示「更多動作」(或是「分享」的圖示)。
  • 點選「儲存到檔案」(看不到就向下找找)。
  • 指定想儲存到哪個地方及檔案名稱。
  • 按「儲存」。

[圖1] iOS語音備忘錄儲存到檔案

那可以將錄音儲存到雲端硬碟中嗎?

當然沒問題,想儲存到哪個地方完全自己決定就好。

有了語音檔案了,接下來,就跟在電腦上操作 Colab 裡的 OpenAI Whisper 類似步驟。

OpenAI Whisper 轉語音備忘錄為逐字稿

經過前面的程序,將轉語音備忘錄儲存為檔案以後,我們就可以開啟 OpenAI Whisper 了。有兩個選擇,可以使用 OpenAI Whisper,或是 Faster Whisper,如果尚未使用過,可以先在電腦上,參考底下兩篇舊文,裡面有操作示範的影片:

如果想直接使用 Whisper ,就用底下的連結來開啟工具:

小技巧:

  • 上載音檔:
    在手機上,因為是直拿的版面,先按畫面左上角的「三條線」圖示,再按「顯示檔案瀏覽器」。這樣就可以看到「虛擬機」的檔案及目錄了(有時可能要稍等一下,等虛擬機啟動連線,請參考 [圖2] [圖3] 或示範影片)。
  • 格式選擇:
    2024.11.21 以後,格式的選項中,新增了「.srt.txt」的項目。它會輸出帶有時間的字幕格式逐字稿,但是因為檔名結尾為「.srt.txt」,在手機或是平板中會被視為純文字檔案,就可以直接開啟來查看內容。(請參考 [圖4])
  • 自動鎖定:
    手機、平板有省電的機置,可能會因為「自動鎖定」進入省電模式而自動關閉螢幕,導致 Whisper 的程序被中斷;所以在行動裝置在使用 Whisper,iOS 可能要暫時在「設定」「螢幕顯示與亮度」中,將「自動鎖定」關閉。建議如果時間較長的錄音檔,將錄音錄儲存到雲端硬碟,再使用電腦來轉逐字稿較理想。
在手機中上傳音檔的程序如 [圖2] 所示:
[圖2] 在手機中上傳音檔

上傳好音檔後,按一下檔名,再按一下右側的「三個點點」,出現選單就按「複製路徑」。
[圖3] 複製音檔的路徑
將音檔的路徑貼入 url 的欄位中,將格式設定為 .srt.txt ,其它選項則依需求自行設定,都設定完就按左上角的「播放」圖示來開始執行程序 [圖4]  :
[圖4] 設定 & 執行

完成後記得參考 [圖5] ,進行中斷連線並刪除程執行程序的動作:
[圖5] 中斷連線並刪除程執行程序

示範影片

註: 影片有中文字幕並分章節。

相關連結


2024年6月6日 星期四

Android : 清理 USB 插槽

2024年6月6日 星期四

最近手機插上 USB 線,準備充電時,常常會跳出「檢查充電器連線」的訊息:

因為我的手機保護殼完全不會擋到 USB 端子,所以一開始,遇到這個訊息,就是將 USB 線重拔插,一次不行,就再試一次。不過警示出現的頻率愈來愈高,就耐著性子,好好地端詳一番,看看這 USB 插槽倒底是怎麼一會事。

平時出門時,我的手機都是切換到靜音模式,然後放到褲子的口袋中。口袋中難免會有棉絮,如果有衛生紙,那就更精彩了。

摘了眼鏡,仔細一看,原來我的手機 USB 插槽底部卡著一層扎扎實實的白色棉絮,在猜想,原來可能只有一點點纖維在插槽周圍,每次插 USB 端子,就被帶往底部,並壓實,久了、變厚了,厚到讓 USB 端子無法壓到底,變成接觸不良。

以不會導電的牙線棒尖端,一點一點的慢慢挑,總算把棉絮都清完了。看來以後每隔一段時間,就要清理一下才行。不然,幫它設計一個塞子好了!


2022年12月26日 星期一

JavaScript: Touch 和 Mouse 事件的觸發順序

2022年12月26日 星期一

以前 LimeJS framework 寫的 程式中遇過設了 click 事件的處理程序,在 iOS 中沒有執行的情形,當時也沒去深入研究,索性就避免使用 click,改以 touchstart 和 mousedown 來取代。這兩天為了解決「HTML5 分數小教具」在行動裝置上會滑動的問題,監控了最底層元件的 touchstart、touchmove,哈!在 iOS 中的分數小教具,所有的按鈕通通失效了,想想,多半是因為 click 的動作中有含 touchstart 的部份,而它被底層元件攔劫走了,就無法進行後續的程序了。

底下就來測試一下,touchstart、touchend、mousedown、mouseup 和 click 到底依什麼順序來被觸發?

在電腦或是有觸控螢幕的載具中按一下底下虛線方塊中的任何一點,看前面幾個事件出現的順序如何?


值得再進一步觀察的是,在電腦版跟手機版的結果其實是不同的,可以比較看看。

此外,如果在 touchstart 觸發時,加入「preventDefault()」,改變了原有觸發的程序,上面的結果又會有所不同。(註:如果操作的裝置沒有觸控的功能,底下可能會跟前一個實驗結果一樣。)


經過前面的實驗,可以知道,在行動裝置中,因為有觸控功能,是以 TouchEvent 為主,在電腦中則是 TouchEvent 和 MouseEvent 各自獨立運作;在行動裝置中,如果在第一個會觸發的 touchstart 中,呼叫了 event.preventDefault(),mousedown 及 click 就都不會再繼續觸發了,反之則會按順序觸發。

在 LimeJS framework 中,最底層的 director ,為了防止在行動裝置中針對其上的物件操作時,會讓整個畫面滑動,所以監控了 TouchEvent,同時也在 touchstart、touchmove 事件中,執行了 event.preventDefault(),所以如果沒有對應的事件處理程序,搶在 director 前處理,就會造成 click 事件失效。

相關連結

2022年8月6日 星期六

Android : 解決無法移除 FB Messenger 帳號

2022年8月6日 星期六

 Android 手機借朋友用 Facebook Messenger 發訊息後,以 Messenger 的「帳號管理」要移除帳號,出現了底下的訊息:

此帳號也已經在這部裝置上登入Facebook。你必須從 Facebook 登出此帳號,才能將其移除。

好的~那就照著操作,先到 Facebook 的程式中去登出,重新回到 Messaenger 去移除帳號,結果還是出現 [圖1] 的訊息!

[圖1] Messenger 無法移除帳號

今天是愚人節嗎?像鬼打牆一樣!明明 Facebook 已經登出,甚至選了「從裝罝移除」了,它還是說沒有登出!

好!使出大絕招,將 Facebook 和 Messenger ,甚至 Meta ...  的應用程式,通通移除,也利用檔案管理的工具去一個個目錄查過了,似乎沒有留下什麼資料了,總該是乾淨的狀態了吧!重新將相關的應用程式安裝回來,再開啟 Messenger 看看。

是的!我還是失敗了!要真那麼順利,就不用寫這篇筆記了。

查了一下,原來在 Android 中,Facebook 的帳號資料是儲存在系統中,所以要刪除的話,應該要利用 Android 的系統設定中:

  • 帳號與備份
  • 帳號

[圖2] 帳號與備份

找到如 [圖3] 這樣的選單:

[圖3] Facebook 的帳號清單

清單中,有 Facebook 圖示的,那串數字 Facebook 帳號的 ID。想刪除哪一個,就按一下進入,然後就會有類似 [圖4] 的畫面:


只要按一下 [刪除帳號] 就可以將本裝置中該 Facebook 帳號資料刪除。

不過,在按上面的按鈕之前,建議先在 Facebook 應用程式中先登出、移除,並關閉應用程式,不然,再次啟動 Facebook 應用程式時,可能該帳號又「復活」了。

重新列出要順利在 Android 中的 Messenger 刪除帳號的程序:

  • 在 Facebook 應用程式中:
    • 登出帳號
    • 按帳號右側三個點點,由選單中按「從裝置中移除帳號」。
  • 在系統設定中:
    • 進入「帳號與備份」
    • 進入「帳號」
    • 如果找到要刪除的 Facebook 帳號,進入並按「刪除帳號」。
  • 最後在 Messenger 應用程式中,利用設定中的「管理帳號」,找到要刪除的帳號,長按後,按刪除(垃圾桶圖示)。

沒想到刪一個帳號,要搞得這麼複雜,真的是圈圈叉叉!

2022年3月3日 星期四

Android : 撥吉他弦拍照

2022年3月3日 星期四

早上在幫吉他調音時,想到一個做人處事的道理,本想用手機拍一張照當配圖,哈!結果才把 E2 調準,忽然聽到手機的快門聲「咔擦」,它自拍起來了!下面這張照片就它自拍的:

吉他絃啟動的自拍照

覺得好玩,就這樣像小孩兒一樣地玩半天。

它自拍時,手機的照機畫面可以看到麥克的的圖示,查一下手機相機的設定:

Samsung 手機拍攝模式的設定

在我的 Samsung S8 的拍攝模式設定中,有一個「語音控制」是啟動的,看來應該是偵測到類似的音頻,所以它就自拍起來了。

之後拿昨天才修好的 HTC One 來試,它也可以用吉他弦來自拍,不過,比較沒有那麼靈敏,試很多次才能成功:

HTC 以吉他絃啟動自拍

再拿舊的 InFocus M320 來試,它的靈敏度跟 Samsung S8 差不多,都是撥一下吉他的第六弦就能自拍:

InFocus M320 用吉他啟動自拍

哈~原來想記錄的一句話是:

人生跟吉他一樣,調過音就有機會步上正軌;也需要不斷地調音。



2022年3月2日 星期三

iCloud : 匯入 Android 聯絡人

2022年3月2日 星期三

 有人的 Android 手機不明原因旳一直重新啟動,最後決定把那家曾經也風光過的大廠手機換成 iPhone。本以為舊手機中的資料沒救了,我亂玩一陣子以後(哈哈哈~當然還是沒救),突發奇想,在一開完機,立即長按電源開關,選「飛安模式」,它~居然沒再重開了。

準備進入「飛安模式」

趕緊將存在 Android 手機中的「聯絡人」匯出到 SD 卡中。

本以為將 SD 卡中的 .vcf 檔案直接透過 iCloud 匯入,這樣就能把 Android 手機中的聯絡人轉移到 iPhone 了,沒想到,iCloud 居然說無法匯入。

試著將 iCloud 的聯絡人匯出一筆資料,檔案裡有:

BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iOS 15.2//EN

而由舊 Android 手機匯出的是:

BEGIN:VCARD
VERSION:2.1

從這個線索看來,目前用的 iCloud 並不支援 VCARD 2.1。其實也就格式上的問題,轉一下就好了,應該也沒有幾行程式碼就能解決的,居然懶得弄。再不然,至少也提示一下無法匯入的原因。

哈!現在知道不要老「自己造輪子」,上網找了一下,在 GitHub 中已經有人用 Python 寫了 VCARD 2.1 轉 3.0 的程式了:

把裡面的「vcard2to3.py」下載回來,後面再加上要轉的聯絡人匯出檔案的檔名即可:

用 Python3 執行 vcard2to3.py 轉格式

轉完的話,會在同目錄中多一個檔名字尾「.converted」的檔案。

在 iCloud 的聯絡人中,按畫面左下角的齒輪圖示以後,再點「匯入 vCard」

由 iCloud 匯入 vCard 檔

選定剛剛轉好的「XXX.converted」檔案,稍等一下下,Android 手機中的聯絡人就可以順利轉移到 iPhone 中囉!


2021年10月23日 星期六

Android : RedMi Note 2 定時開關機

2021年10月23日 星期六

之前把舊的紅米 Note 2 拿來當電腦的 webcam,為了省電,設定了依時間自動開關機,最近比較少用了,卻找半天,找不到在哪裡設定。晚上又試了一次,總算找到了,趕快截圖記錄一下。

進入紅米 Note 2 的設定後,打開「電量和性能」

2021年8月11日 星期三

VNC : 行動載具變手寫板

2021年8月11日 星期三

手機和平板有觸控螢幕,所以如果用行動戴具來遙控電腦,它們就變成了無線手寫板了。那如何遙控電腦呢?現在的遙控方案五花八門,運作的方式不外乎是在電腦上安裝軟體,並由此軟體來提供本機的網路服務供載具連線;或是連到外部主機所提供的遠端服務,由遠端來進行電腦和載具的配對連線。本篇所採用的 VNC 方案是前者,網路連線不用透過外部的主機,電腦上安裝 VNC 服務的程式(VNC server),而戴具上安裝 VNC 客戶端(VNC viewer)。

關於 VNC 的使用,印象中有整理過筆記,查了一下,2012 年4月有一篇,不過,哈哈哈!居然還是草稿,整理一半就丟著了,裡面有些東西己經進化到都不一樣了。只好重頭來過!

前面提到,我們打算以行動載具來遙控電腦,所以我們要在電腦上安裝可提供 VNC 服務的軟體(VNC server),在行動載具上安裝 VNC 客戶端(VNC viewer)。

VNC 的軟體有不少,但本篇採用的軟體,選用的條件是必須符合免費而且功能較完整的:

電腦端:

行動載具:


VNC Viewer For Android


其中 VNC Viewer for Android 是一個開源的軟體,專案的網址如下:

詳細的功能說明可以參考它的 wiki :

而 Mocha VNC Lite 因為是免費版,所以有五分鐘的限制,計時終了會自動斷線,必須重新連線才能繼續使用,如果覺得不錯,其實可以花 台幣180 元左右升級成付費版,就不用一直重新連線。它其實 iOS 跟 Android 兩種系統都有。不過,如果載具是 Android,比較建議用開源又免費的 VNC Viewer for Android 就好。

在載具上的操作,本篇是介紹 VNC Viewer for Android ,它可以在舊載具的 Android 4.x 版上順利的安裝與運行。

VNC Viewer for Android 提供很多種模式供使用者運用,底下簡單摘要幾項重點。

讓功能選單出現

VNC Viewer for Android 連線成功以後,功能選單應該會現在畫面下方,如果是隱藏狀態,可以長按載具的「選單」鈕。

顏色模式

VNC Viewer for Android 預設使用的顏色模式是色階較小的,如果畫面傳輸的情形良好,可以提高色階,哈!我是直接拉到最高了!設定的方法如下:

  • 叫出功能選單。
  • 按功能選單上的「更多」。
  • 點選「顏色模式」。
  • 點選想套用的模式,最高是「24-bit color(4 bpp)」。


按功能表上的「更多」
點選「顏色模式」
點選「24-bit color(4 bpp)」

選定後,功能表會自動關閉。

輸入模式

VNC Viewer for Android 中,關於滑鼠的操作(輸入),可針對不同需求進行切換。

如果是想縮放、捲動電腦畫面可視的範圍,或是想執行滑鼠右鍵的功能時,建議在「輸入模式」選單中,點選最上面兩項中的「支持縮放的觸摸屏」或「觸摸屏」。

按選單上的「輸入模式」中的最上面兩項中的一項

設定為前兩項的其中一個以後:

  • 放大或縮小畫面:以兩指開合的手勢來控制。
  • 顯示放大、縮小、輸入文字的工具:以單指點一下畫面即可以叫出工具來使用。
  • 滑鼠按一下右鍵:以單指原地快點兩下,可以模擬按一下滑鼠右鍵的功能。
  • 滑鼠按一下左鍵:以單指快點一下,可以模擬按一下滑鼠左鍵的功能

點一下畫面後,下方有縮放及文字輸入的工具的圖示

如果是想塗塗、寫寫或是拖曳的動作,「輸入模式」就必須切換為「指標指針控制模式」或是「觸摸屏鼠標;D-Pad..」其中一個模式。

需要拖曳、塗鴨時的輸入模式

模擬滑鼠的滾輪

電腦的滑鼠滾輪可以用來捲動捲軸,在 VNC Viewer for Android 中,我們可以使用音量調鈕來代替,按音量調大聲、調小聲的實體按鈕,就可以遙控電腦的捲軸。


示範影片

底下的影片中,可以看到 VNC Viewer For Android 「輸入模式」如何切換:


在 Android 上和 iOS 上,哪一個塗塗寫寫流暢?哈!只能說 iOS 大勝!不過,或許是我自己的 Android 手機和平板太舊、太差的關係,使用經驗才會輸 iPad 上的。

關於 VNC Viewer For Android 的其它功能,可以參考 wiki 中的詳細說明


2021年7月14日 星期三

Android : RedMi Note USB Debugging Security Setting

2021年7月14日 星期三

手上有三支小米家的舊手機,之前在玩 scrcpy 時,最舊的紅米除了鏡像畫面到電腦上以外,可以在電腦以快速按鍵送模擬的按鍵指令來操控手機;但是在紅米 Note 2 上卻只能進行畫面的鏡像。當時以為是 scrcpy 不支援紅米 Note,昨天在玩以 adb shell input keyevent 來操控紅米Note 2中的 IP Webcam,怎麼試都沒反應;把另一支紅米Note 4 開機,準備透過 abd 來安裝 IP Webcam 的 apk 檔案,需要開啟「開發人員選項」中的「USB安裝」功能時,才發現,原來在較新的 MIUI 中,除了「USB 偵錯」的選項以外,其它的相關功能預設是被鎖定的,而且想解鎖,得插入 SIM 卡,登入小米帳號,然後按一堆「同意」,才能將 USB adb 的相關功能打開。

USB安裝、USB調試得要登入小米帳號才能啟用

如果沒有登入小米帳號,「USB安裝」及「USB調試(安全設定)」啟用的按鈕按下後,它只會跳出警訊後,又自動禁用。

2021年5月16日 星期日

Linux : 虛擬 Webcam : v4l2loopback 加 GStreamer

2021年5月16日 星期日
在「雄 : Android : 手機變電腦的 Webcam : IP Camera Adapter」中提到在 Windows 中除了可以用 OBS 的虛擬相機,另一個選擇是用 IP Camera Adapter;那在 Linux 還有什麼選擇呢?其實應該是有更多的方案,本篇來玩玩 v4l2loopbackGStreamer,由 v4l2loopback 建立虛擬 Webcam,而由 GStreamer 抓取 IP Webcam 所提供的 Android 手機鏡頭拍到的 MJPEG 串流,變成電腦的 Webcam。

先在 Linux 上安裝好 v4l2loopback-dkms 跟 GStreamer,接著就可以來玩玩虛擬 Webcam 了。

Google Meet : 設定 : 攝影機

2021年5月15日 星期六

Android : 手機變電腦的 Webcam : IP Camera Adapter

2021年5月15日 星期六

關於把 Android 手機當電腦的 Webcam ,在「雄 : Android : 手機變電腦的 Webcam : OBS」這篇中,使用的是跨平臺的 OBS 抓取 IP Webcam 傳來的 Android 手機鏡頭畫面,然後變成虛擬相機。如果電腦使用的是 Windows,則多了一個選擇,可以使用本篇所要介紹的 IP Camera Adapter ,搭配 Android 上 IP Webcam 或 DroidCam 來建立虛擬相機,並應用在 Zoom、Google Meet ...... 等需要 Webcam 的地方。

Google Meet & Chrome 攝影機設定

2021年5月14日 星期五

Android : 手機變電腦的 Webcam : OBS

2021年5月14日 星期五
之前因為講課需要使用實物投影機,而電腦沒有外接的 Webcam 可用,又把  Android 手機 + IP Webcam 的方案拿出來用。如果搭配 Android adb 工具程式,甚至只要連接 USB 線,可以應用在沒有無線網路可用的環境中。那 Android 手機的鏡頭可以變成電腦的 Webcam,讓 Zoom、Google Meet......使用嗎?試了許久,利用所謂的 Virtual Camera ,的確是可以讓電腦的其它軟體當它一般的 webcam 來用。本篇先來玩玩 OBS 的虛擬相機 (Virtual Camera)。

Google Meet & Chrome 攝影機設定


2021年4月29日 星期四

App Inventor : TTS 文字轉語音講中文

2021年4月29日 星期四

 App Inventor 內建了 TextToSpeech (TTS) 的積木,可以把字串以合成的語音唸出來。線上使用說明文件在這個網址:

看起來很簡單啊~~哈!如果讓它講英是沒什麼問題,最大的問題是在「Country」中找不到台灣,在「Language」中找不到中文;測試的結果,當然是遇到中文就變啞巴。

看一下手機中的到底安裝了什麼 TTS 的相關資料?

TTS 一般是歸在 Android 手機設定的「語言與輸入」裡面,我的紅米手機是放在「文字轉語音輸出」:


這支舊的紅米手機內建的 TTS 引擎是「Pico TTS」


再來看 Pico TTS 支援哪些語言:


難怪不會說中文,根本沒有中文的語音資料。

沒關係!把 TTS 「引擎」換成有支援中文的Google 文字轉語音引擎」,到 Google Play 中找到「Google 文字轉語音引擎」,安裝完,重新回到「語言與輸入」的設定中,應該就可以選取「Google 文字轉語音引擎」了


設定完,再去 App Inventor 的 App 中測試,應該可以講中文了。



App Inventor : 語音辨識與文字轉語言合用的趣味

 早上利用 App Inventor 把語音辨識測試程式中加入了 TTS (文字轉語音)的功能,讓手機將語音辨識完的文字,再透過 TTS 唸出來,結果講了幾個詞以後,手機變成自言自語,輸出變輸入,輸入又變輸出......


Google 小姐就這麼一直不停的講,完全停不下來!要不是手機快沒電了,還真想看看她會不會當掉呢!

當然囉~如果有插上耳麥,麥克風收不到喇叭的聲音,就不會像這樣掉到迴圈中,無限循環了。




2021年4月28日 星期三

App Inventor : SpeechRecognizer 語音辨識

2021年4月28日 星期三

最近要寫一個以語音發出指令,然後利用手機控制馬達的程式,現在 MIT App Inventor 中的 Media 就內建有 SpeechRecognizer 語音辨識的積木可以來構建我需要的功能。

看 SpeechRecognizer 的線上說明,只要將 UseLegacy 的屬性值改為 False,就可以讓語音辨識的功能在背景執行,而且可以連續地使用,直到關閉功能為止。這部份和舊版時,想要不中斷使用語音辨識,得利用 Timer 來自己判斷並維運,有很大的差異。

但是我試了兩天,並不是像說明寫的那麼簡單啊!無論我將 UseLegacy 設為 True 或是 False,它的差別只有會不會出現說話以供辨識的提示而已;只要不說話了,SpeechRecognizer 就罷工休息了。

不過觀察了一下,每次罷工前,畫面總會出現錯誤代碼和訊息,大概就類似底下的:

  • Error 3802: Client Side Error
  • Error 3806: No Match
  • Error 3807: RecognitionService Busy
  • Error 3809: No Speech Input

有留下線索就好辦了!

如果是 Error 3802,SpeechRecognizer 會繼續工作,但如果是 Error 3806,SpeechRecognizer 就會去睡大頭覺了!

因此我試著在發生 Error3806 時,就重新利用 GetText() 叫醒 SpeechRecognizer。

另外當然一個需要再度呼叫  GetText() 的地方就是當語音已經辨識完成時。根據線上說明,當 SpeechRecognizer 進行完語音辨識時,會觸發 AfterGettingText 事件,而在  UseLegacy 設為 False 時,最後一部份完成辨識,在  AfterGettingText 中,還會把 partial 變數設為 False。所以在  AfterGettingText 中,可以利用  partial 是否為 False 來判斷它已辨識完成,我們就重新利用 GetText() 叫醒 SpeechRecognizer。

先來看看利用一個 Button、一個 Label 和一個本篇的主角 SpeechRecognizer 所構成的完整程序:


Error3806  在哪裡處理呢?

因為只有一個 Screen (Screen1) ,所以我們在 Screen1.ErrorOccurred 中放入檢查錯誤代碼,並重新呼叫  GetText()  的程序。

另一個讓語音辨識不中斷的關鍵則在 AfterGettingText 中:


注意上面積木塊中的第二個 if 積木,它用來在 partial 為 Fasle 時,重新呼叫  GetText()  的程序。

如果能處理 Error3806 及 partial 為 False 這兩點,並重新呼叫  GetText() ,就能讓 App Inventor 的語音辨識能夠一直維持上線狀態。






2019年1月19日 星期六

Android : 找回 Facebook 貼文的「草稿」

2019年1月19日 星期六
昨晚有人在 Facebook 上貼文求救,想找回消失不見的「草稿」。平常沒有使用 Facebook App 的習慣,看到那則才知道,原來如果在行動載具上使用 Facebook App,文章打一半是可以暫時存成「草稿」的,而且最多可以暫存三天。幫忙找了一下救回草稿的方法,為了測試,就在 Android 手機上以 Facebook App 登入。

整理一下測試結果,有兩個重點一定要先具備:
  • 使用 Android 的 Facebook App 。
  • Facebook 的「通知」一定要「開啟」。

底下的截圖是 Sumsung S8 的畫面,其它品牌的可能有部份不同。

1.進入 Android 系統設定,開啟 Facebook 的通知


2.新增一個測試的貼文後,按「返回鍵」


3.出現「儲存為草稿」的選項,按一下該項。


4.我的手機按完「儲存為草稿」以後,畫面會暫時變黑一下下,然後 Android 系統會發出通知;將通知的頁面拉下來後,就可以出現類似底下的「你的草稿已儲存」的畫面。點一下該項目,即可開啟草稿的清單。


5.由草稿清單中點選要繼續編輯的草稿


6.繼續編輯


上面的程序是 Android 的 Facebook App 中測試的,在 iPad 上可以看到草稿儲存的訊息,但卻無法叫出清單,等我有進一步的發現再記錄囉!


2017年10月10日 星期二

Android : Flash Player

2017年10月10日 星期二
最近要讓小孩子在零散的時間玩 Startfall http://www.starfall.com/ ),期待她能以自學的方式加強英文拼音。不過 Starfall 網站用的是 Flash 開發的互動式動畫,目前只剩桌機和筆電可以玩,攜帶方便及可免去開關機的手機和平板可說是無緣了。在等待更新舊筆電時,仍不死心的拿出 Android 4.4.x 的手機和平板出來試執行 FlashPlayer 可行的方案。上網輸入了「Android 4.4 flash player」的關鍵字,找到了底下這篇文章:



文章中說到可以安裝 Flash Player 並利用支援 Flash Player plugin 的 Dophin Browser 來開啟帶有 Flash 的網頁。文章裡面的方法以前試過是可以的,後來 Adobe 新出的 Flash Player 不再支援 plugin ,Flash Player 移除了,Dophin Browser 也就不曾使用了。

上面這篇文章中有據說被修改過的 Flash Player 11 載點,想說試試看無妨,結果真的可以讓 Flash 在 Android 中再現風采耶!

不過,不經一番寒澈骨,焉得梅花撲鼻香,又遇到底下的問題:

  • 如何跳過網頁檢查瀏覽器版本(User Agent)?
  • 如何讓 Flash 可以有 Click、Drag & Drop 的互動動作?

沒關係,Dophin Browser 只要進一步設定一下即可解決問題,底下就將設定截一下圖備忘。

2016年5月15日 星期日

3DP : 以 Android 裝置控制 3D printer

2016年5月15日 星期日
我的 SmartrapCore 3D printer 沒有安裝 LCD 和控制面板,家裡有幾個閒置的 Android 裝置,在想,如果能夠透過 OTG 線以 USB 直接連線,帶有觸控面板的 Android 裝置就能發揮剩餘價值,而且,觸控的吔!操作起來很炫!

被 AppInventor 輕鬆寫 App 的方式竉壞了,第一個想到的當然是朝可不可以用 AppInventor開發這個方向去找資料。找到這個「USB_BRIDGE_ANDROID_OTG」:



後來又挖到一些如何透過 USB 進行通訊的資料。好久沒寫 Android 的程式,那~有沒有現成的 Apps 啊!

運氣不錯,找到了一個最近才發佈沒多久的 App:「Reprap Control」



作者還很佛心的提供了 source :



如果 Android 手機或平板有支援 OTG 的話,可以玩玩看用觸控方式操作 3D printer 。

2015年2月4日 星期三

3DP : Arduino : 藍牙遙控履帶車

2015年2月4日 星期三
肖想一臺履帶車很久了,一月初去松山工農參加3D列印機組裝及調校研習,帶回了一臺 Prusa i3 3D列印機,一邊調校,一邊列印,就這麼印完一臺履帶車所需的履帶元件。原本想利用之前拆解2.5吋軟磁機,閒置一旁許久的金屬殼當車身,不過履帶一直「勞鏈」,試過很多方法都沒解決問題,最後還是決定用 PLA 材料印了原設計裡的車身來搭配。整臺車都印完了,這履帶車該順利上路了吧?!哈~哪有那麼輕鬆,還是「勞鏈」連連啦!沒關係,試了幾天,我研究出不「勞鏈」的組合方法了,順便加上藍牙遙控的功能,終於完成了第一臺 3DP 藍牙遙控履帶車。


2014年12月9日 星期二

Arduino : MeArm 藍牙遙控自走車

2014年12月9日 星期二
最近玩的 MeArm 搖桿機械手臂,加上年初玩的「Android 遙控藍芽科學魔法車」,兩者結合起來就可以變成「MeArm 藍牙遙控自走車」。

MeArm 藍牙遙控自走車接線圖



錄了一小段 MeArm 藍牙遙控自走車實際操作的影片:




 
雄::gsyan © 2009. Design by Pocket