2019年2月18日 星期一

Python的虛擬環境 (Virtual Environment)

工欲善其事,必先利其器。在寫 python 程式的時候是否有曾經為了裝某些套件時,但是因為被其他套件的版本或是本身 python 的版本限制住,而無法順利安裝完成呢? 我自己目前有使用兩個python的虛擬環境來解決這個問題,一個是 virtual environemnt,另一個是 anaconda (或 miniconda)。
虛擬環境可以提供開發不同程式的時候,使用各自專案所需的開發環境,不會造成相互影響。或是如果有多人在相同平台上面開發程式時,也可以使用虛擬環境來區隔彼此所需的環境。

Virtual Environment

如果你的開發環境還沒有 virtualenv 的話,可以透過 easy_install virtualenv 的指令來安裝。

建立新的虛擬環境使用方式如下

    virtualenv -p /usr/bin/python venv


其中的 -p /usr/bin/python 這段參數是在指定這次建立的虛擬環境要使用哪一個的 python 執行檔;venv 這個參數是在指定這次建立的虛擬環境要放到哪邊。

如何套用建立的虛擬環境

    source venv/bin/activate

透過 source 的指令來指定到剛剛建立的 venv 裡面的 bin/activate 即可。若要離開現在的虛擬環境時,只需要輸入 deactivate 即可。
使用虛擬環境前與使用後的差異如下

如上圖所示,可以發現使用虛擬環境時所使用到的 python 路徑會一併跟著改變了。

如何在虛擬環境安裝套件

    當套用了虛擬環境之後,想要安裝任何的套件時,只需要透過 pip 這個指定直接安裝。

Anaconda (Miniconda)

另一個我有在使用的虛擬環境是 Anaconda/ Miniconda。Anaconda與Miniconda中間的差異主要在於預設的安裝套件,Anaconda 預設安裝的套件較多,許多 machine learning 會使用到的套件都會預設安裝,而 Minicoda 只會預設定裝 python 基本套件。

如何安裝

    Anaconda 與 Miniconda 安裝的說明可以參考下面連結。
    Anaconda - https://docs.anaconda.com/anaconda/install/
    Miniconda - https://conda.io/en/latest/miniconda.html

如何建立虛擬環境

    conda create -n py2 python=2.7

其中的 -n py2 是設定要建立的虛擬環境名稱,後面的 python=2.7 是拿來指定這次環境中 python 的版本。

如何查詢已建立過的虛擬環境

    conda env list

如何使用虛擬環境

    source activate py2

在 conda 裡面要使用虛擬環境跟 virtualenv 有一點點不同,指令 source 後面需要先加上 activate 之後,再加上之前建立的名稱,要離開目前 conda 的環境是要輸入 source deactivate。

如何在虛擬環境安裝套件

    當套用了虛擬環境之後,想要安裝任何的套件時,在 conda 下也可以直接透過 pip 這個指定直接安裝。或是 conda install PACKAGE_NAME。

虛擬環境的應用還蠻方便的,尤其是在開發多個專案的時候又遇到有不同的套件需求時,透過虛擬環境可以避免掉相互影響的問題。

2019年2月13日 星期三

用Python打造一個中文語音入輸入

參考SPEECH TO TEXT首先要安裝下列套件:
1.pip install SpeechRecognition
2.pip install PyAudio
然而怎麼裝都無法成功地裝PyAudio
試了許久都未能成功,很想放棄


在這個網站中
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
下載PyAudio-0.2.11-cp37-cp37m-win32.whl檔案
然後輸入下列指令
pip install PyAudio-0.2.11-cp37-cp37m-win32.whl
居然成功安裝

然後輸入下列程式
import speech_recognition as sr
r=sr.Recognizer()
with sr.Microphone() as source:
    print("SAY SOMETHING")
    audio=r.listen(source)
    print("TIME OVER, THANKS")
try:
    print("Text"+r.recognize_google(audio, language='zh-tw'))
except:
    pass
執行結果:
測試成果感覺很好。

2019年2月10日 星期日

以茶文化生活科技打造初鄉茶間

[敏哥和熊學院的于萍(左1)和博淵(右1)合影]



以南開科技大學為中心學校的「智慧科技與產業創新跨校教學聯盟」(簡稱智創聯盟),自104年起執行教育部「智慧生活整合創新教學聯盟推動計畫」,經歷四年即將於今(108)年1月底告一段落。特於108年1月12日(星期六)舉辦計劃總成果展,邀同教育部智慧生活整合性人才培育計畫總計畫主持人蘇朝琴教授、教育部指導委員陳正然先生,教育部資訊及科技教育司藍曼琪女士等,來賓南投市宋市長、鹿谷鄉邱鄉長、資策會李組長、逢甲大學資電學院竇院長、中興新村營北里戰姵鈴里長、光榮里陳武強里長、熊學院家族等,以及南開科技大學許聰鑫副校長、計畫主持人林正敏、智創聯盟教師夥伴等,聚集在南投縣鹿谷鄉初鄉村,為初鄉茶間成為智創聯盟合作的示範場域舉行揭牌儀式,同時為此成果展揭開序幕。

[教育部藍曼琪科長、智活二期計畫主持人蘇朝琴、南開科大許聰鑫副校長、鹿谷鄉邱如平鄉長]

活動過程穿插各計畫主持人以說故事的方式分享執行成果,與聯盟創新團隊為初鄉茶間設計魚腥草AR/VR、貓頭鷹塗鴉AR等作品體驗活動,展示智慧科技與場域的結合,讓與會者透過體驗遊玩,回顧智創聯盟從「文化導向生活科技」重點領域為基礎,以「智慧科技改善弱勢場域,融入在地社區常民生活,以深度旅遊活化在地特色與產業創新」的目標,透過年輕人的創意與活力,最終達成場域與聯盟合作的永續經營。午膳時間,初鄉茶間創辦人李光曜先生準備魚腥草入菜的美食佳餚,讓大家齊聚品嘗。

[初鄉茶間最新的魚鯹草產品以及製作VR的團隊]

[計畫主持人林正敏講解成果]

[大合照]

[大合照,中興新村光榮里陳武強里長(左1)]

[宋市長、資策會李組長、南開科大民生學院林淑份合影]

[營北里戰姵鈴里長(左2)與大家合影]

[虎科大許永和主任正在調整智慧農業的展示成果]

中文字文字轉語音(CN-TTS)模組測試心得

前些日子到廣華電子購買一顆CN-TTS中文字文字轉語音模組,利用春節假期測試一下,該顆IC只需要4條連接線,分別是VCC、TX、RX、和GND,其文件手冊可以在:https://docs.google.com/viewerng/viewer?url=http://shop.cpu.com.tw/upload/2018/06/VOICE-TTS.pdf下載。
由於中文只支援GBK,因此必須經由轉碼才能使用,首先利用WORD把繁體中文轉換成簡體中文,然後經由漢字字符集編碼查詢,如下圖。


再把上圖得到資訊,利用Arduino軟體以及NodeMCU 晶片來設計中文字文字轉語音模組測試程式,程式碼如下:

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
Serial.print(' ');
Serial.print('\xC4');
Serial.print('\xFA');
Serial.print(' ');
Serial.print('\xBA');
Serial.print('\xC3');
Serial.print(' ');
Serial.print('\xC2');
Serial.print('\xF0');
delay(5000);
Serial.print("\xCE\xD2\xBA\xDC\xBA\xC3");
delay(5000);
}