分類
软件

Mozilla的開源語音轉文字庫DeepSpeech

DeepSpeech 是一個開源的語音文字引擎,使用的是基於百度深度語音研究論文的機器學習技術訓練的模型。DeepSpeech 項目使用谷歌的 TensorFlow,以使實施更加容易。

#https://deepspeech.readthedocs.io/en/r0.9/?badge=latest
# 創建一個虛擬環境
virtualenv -p python3 $HOME/tmp/deepspeech-venv/
source $HOME/tmp/deepspeech-venv/bin/activate

# 安裝 DeepSpeech
pip3 install deepspeech

# 下載預編譯都英文模型文件
curl -LO https://github.com/mozilla/DeepSpeech/releases/download/v0.9.3/deepspeech-0.9.3-models.pbmm
curl -LO https://github.com/mozilla/DeepSpeech/releases/download/v0.9.3/deepspeech-0.9.3-models.scorer

# 下載測試音頻文件
curl -LO https://github.com/mozilla/DeepSpeech/releases/download/v0.9.3/audio-0.9.3.tar.gz
tar xvf audio-0.9.3.tar.gz

# 把音頻文件轉換成文字
deepspeech --model deepspeech-0.9.3-models.pbmm --scorer deepspeech-0.9.3-models.scorer --audio audio/2830-3980-0043.wav

使用 DeepSpeech 轉換法語

DeepSpeech 目前只預先訓練了英語和漢語普通話,如果要轉換法語,可以使用 Common Voice 下的 commonvoice-fr 中都模型。轉到發佈頁面,下載 model_tensorflow_fr.tar.xz 這個文件即可。實際使用中,你可能需要需要安裝 ffmpeg 和 vox 來轉換 mp3 格式都音頻文檔。轉換後的文字沒有段落,需要手動分段。

sudo dnf install ffmpeg sox
ffmpeg -i speech.mp3 speech.wav
deepspeech --model output_graph.pbmm --scorer kenlm.scorer --audio audio/speech.wav > speech.txt

如果想要把文字轉換成語音,可以使用Mozilla 的開源文字轉語音庫

分類
软件

Mozilla 的開源文字轉語音庫

Mozilla 的這款開源的文字轉語音 TTS(Text-to-Speech)引擎,是一個用於生成高級文本到語音的庫。它建立在最新的研究基礎上,旨在實現訓練的簡易性、速度和質量之間的最佳權衡。它帶有預訓練的模型和測量數據集質量的工具,已經在 20 多種語言的產品和研究項目中使用。

一些體驗:

  • 雖然我在 Python 3.9 下運行沒有任何問題,但是爲了少出問題,最好是用 3.6。
  • 安裝完所有依賴,虛擬環境的文件夾達到 3.1 GB,自帶的英文模型 107 MB,下載的中文模型 654 MB。
  • 我電腦沒有 GPU,生成一句話大概耗時 6 秒左右。
  • 項目自帶了一個 TTS 服務器,直接運行 tts-server 就可以在網頁上體驗 TTS。
  • TTS 有時候(尤其是中文)會抽風。(後來發現是文本沒有加句號導致的)

兩個示例:

The human voice is the most perfect instrument of all.

我們的祖國是花園

如果想要把語音轉換成文字可以使用Mozilla的開源語音轉文字庫DeepSpeech

本文更新於 2022/04/15。

分類
软件

使用 Send Reduced 來減小圖片大小

Send Reduced 雖然只有區區 52 KB,但是卻有兩個非常好用的功能——壓縮照片和清理 Exif 數據。現在安卓手機照片越來越大,動輒一張照片就八九 MB,但是選擇 85% 的壓縮比壓縮後,圖片大小就只剩下六百多KB,肉眼也沒有可見的畫質損失,很適合發送給聯繫人和社交媒體。

不過也有一個小小缺陷,就是壓縮後的最大尺寸是個選項列表,最大的選擇是 2560,如果你一定要選擇大於此尺寸的圖片,就不能用它不行了。

分類
软件

搜索引擎

Ecosia

Ecosia 是一個總部位於德國柏林的搜索引擎,他們將至少80%的利潤捐贈給非營利組織,用於在全球範圍內種植當地原生樹木。Ecosia 是 B Lab 認證的公益企業。他們宣稱實踐了碳吸收,使用再生能源為伺服器供能,保持財務透明,還保護用戶的隱私。

我試用了兩天,感覺還不錯,也安裝了他們的火狐插件,打算繼續使用。它的結果是從 Bing 返回的,一般資訊也都能順利找到,由於 Bing 很懂中國,所以它不會把維基百科的鏈接放在前面。順帶一提,同是使用 Bing 搜索結果的 DuckDuckGo 最近又可以直接訪問了。

searx

searx 是一款元搜索引擎(對其他搜索引擎的結果進行處理後返回結果),這樣其他搜索引擎便不易獲得搜索者的個人隱私。如果不想自己搭建,也有很多在線實例可供選擇。

在沒有遇到 Ecosia 之前,有用過一段時間 searx,搜索結果質量不是很穩定,但還是可以作爲一個不錯的備選的。它有兩個特點挺好的,一個是如果搜索到的頁面已經被互聯網檔案館所保存,則可以去看存檔的網頁;另一個是對於維基百科詞條可以在搜索頁就展示概覽。

Startpage

Startpage 在過去很長一段時間裏都是我的首選搜索引擎,它最大的特定就是保護用戶隱私。由於它的搜索結果來自谷歌,所以搜索質量幾乎等同谷歌。但是後來它不能從中國直接訪問了。


如果有興趣,可以讀下這篇關於搜索引擎的文章:A look at search engines with their own indexes

分類
软件

在線翻譯

除了谷歌翻譯之外,DeepL 翻譯器(註:2021-07-03日發現無法直接訪問了)也是一個不錯的選擇。

但是我今天發現了另一個在線翻譯——LibreTranslate。下面是一些英文翻中文的測試:

English中文
I like you主席先生
Do you like me??
What a lovely day, I hope the good weather continues.我的那一天爱好一天,我希望那里的天气继续发生。
I have never used such a stupid translator!我从未使用这种流行病的变压器!

如你所見,用這個 LibreTranslate 翻中文現在就是純搞笑。希望有一天它能學會真正的翻譯吧。最後無論使用哪一款在線翻譯都不能掉以輕心,即使是大廠產品也經常會翻車。

本文更新於 2021/07/03。

分類
软件

心臟異常檢測 Heart Anomaly Detection

藉助手機的麥克風來錄製心跳,然後使用 MananAgarwal 訓練的 Heartbeat-Classifier 模型來判斷心跳是否異常。經過測試,我和 Emanon 的心跳都是正常。我也有嘗試使用其他項目的實驗數據來測試這個模型,對於「二尖瓣迴流」和「主動脈狹窄」的異常心跳都成功的識別了出來。不過它畢竟只是一個人工智能模型,如果有不舒服,還是應該儘早去看醫生。

安裝 Heart Anomaly Detection

這是一個 python3 的 tensorflow 項目。項目本身並不大(9 MB)但依賴大概有 600MB ,所以推薦使用虛擬環境來安裝

#安裝依賴
pip install tensorflow keras librosa 
#下載項目
git clone https://github.com/MananAgarwal/Heartbeat-Classifier.git
#測試運行
cd Heartbeat-Classifier
python testing.py heartbeat-to-classify.wav
#稍等片刻應該會成功輸出
Normal heartbeat
confidence: 0.9638266

使用手機錄製心跳

由於我不是蘋果手機用戶,所以無法推薦和測試適合的錄音應用。但是該模型的訓練數據中有用到蘋果手機(用iStethoscope Pro)錄製的心跳音頻,所以蘋果手機應該也是沒問題的。我的安卓手機使用的是 Audio Recorder,一個開源免費又小巧的錄音軟件(5.6 MB)。設置裏只需要把編碼格式改爲「.wav」,其他的保持不變即可滿足我們的需要。

找到手機的麥克風位置,一般都在手機的底部。找一個相對安靜的地方,點擊開始錄音(爲了避免誤觸屏幕,可以按一下電源鍵把屏幕關閉),把手機的麥克風的位置貼近心臟的位置,按住15秒左右,然後打開手機,停止錄音。我的建議是手機直接接觸皮膚來錄音,可能會獲得更好的音質。但是我給 Emanon 錄音的時候是隔着 T 恤的,倒也沒有影響的測試結果。

錄好的聲音文件默認保存在 /sdcard/Android/data/com.github.axet.audiorecorder/files/recordings 中,可以通過 USB 線或 Material Files 文件管理器將文件傳輸到電腦上。

最後使用上面的測試命令進行檢測,即可得到預測的心率狀態:Normal(正常)或 Abnormal(不正常),以及預測的信心值 confidence。

關於這個預測模型

該模型由博拉理工学院(印度皮拉尼)的 Manan Agarwal 和 Ankita Chakravarty 根據 The Classifying Heart Sounds Challenge 2011的數據集訓練而來。模型的訓練準確度爲 89.73,測試準確率爲 84.04。下面的文字摘自他們的論文說明:

我們的目標是提供一個可靠,快速且低成本的系統,讓未經培訓的一線衛生工作者或任何具有互聯網訪問權限的人都可以使用,以幫助確定是否應該將受試者推薦給專家診斷,尤其是在訪問臨床醫生和專家比較困難的地區。這也將有助於早期診斷心血管疾病,並大大降低這些死亡的潛在危險因素。

分類
软件

使用 TunProxy 給特定安卓應用套 HTTP 代理

由 raise-isayan 開發的 TunProxy 是一個利用安卓 VPN 服務實現的代理配置工具。它可以讓不支持 HTTP 代理的應用的網絡流量走 HTTP 代理。你可以通過 GitHub 的最新源代碼自己生成安裝包,也可以使用我打的包 TunProxy_1.2.5.apk。我測試了給VLC,Fennec(Firefox),Your local weather 走代理,三款軟件都良好運行。

TunProxy is a useful tool, you could use it to set a http proxy for certain android apps.