Google Cloud Speech to Text API

使用 Google Speech API 將語音檔案辨識為文字 這個東西不出意外的失效了,Google 養肥計畫成功了,現在必須使用 Google Cloud 服務

  • Pricing Cloud Speech-to-Text API 價目表,每月的前 60 分鐘免費,爾後 每 15 秒 $0.006 美元

某天發生問題之後,因為只有

繼續使用 curl 指令

官網說明上的流程

  1. 點選 → 選擇專案 → 下載 json
  2. Install and initialize the Cloud SDK 安裝 SDK
  3. 啟用帳號
    gcloud auth activate-service-account –key-file=[PATH]

例外整理的流程如下

  1. 安裝 Cloud SDK
  2. 登入綁定 Google Cloud 帳號
  3. 準備 curl 所需資訊一:存取 Token
  4. curl 所需資訊二:語音查詢 Json
  5. 組合 curl 語法

存取 Token

在 Command Line 下執行以下指令,所以必須事先安裝 Cloud SDK

正常情況下會得到類似 ya29.c.El-xxxxxxxxxxxxxxx 的字串,這就是 Token 有存取的時間限制

語音查詢 Json

基本架構為

預設的檔案路徑存放在 Google Cloud Storage ,不想那麼麻煩,所以根據

修改 audio 為 content ,將 flac 音檔轉為 base64 即可,以下為範例

 

最後的 curl 指令

回傳結果也是 Json 格式,和以前回傳的 key 略有不同

 

Google developers console API activation

到 console.cloud.google.com/apis 的憑證,建立新的「服務帳戶金鑰」以及下載該金鑰 json 檔案後

使用以下指令啟用

 

1,566 total views, no views today

在 Windows 上 使用 PHP PDO 連接 SQL Server 2008

 

安裝驅動程式 Microsoft Driver

在此使用了 xampp PHP 5.6 版本,因此需要 3.2 的 sqlsrv driver,以及 ODBC Driver

php.ini

將 sqlsrv driver 解壓縮安裝至 c:\xampp\php\ext 內,修改 php.ini

使用 php -mphpinfo() 檢查是否成功載入 SQL Server DLL

PHP 程式範例

 

rowCount() 的坑

SQL Server 沒有回傳最後影響資料數的功能,只能實際去 fetch 讀取後計算列數來達到相同功能需求

5,374 total views, no views today

PHP 單向加密,會員資料庫密碼學

當網站需要會員機制時,除了會員名稱(姓名)、帳號外,當然最重要的就是密碼。 在此不討論那些腦殘的明文密碼http://plainpass.com/ 密碼加密的原則有

  1. 單向加密
  2. 可以比對正確與否

一、單向加密:也就是將密碼加密後,從加密資訊無法還原或得知原始密碼字串。這是後續要討論的所以先說明雙向編碼。 雙向編碼就是可還原原始資料,例如 base64

至於單向加密可以使用 md5() 或是 sha1 ,例如

  • md5() 單向「固定」加密,字元長度 32
  • sha1() 單向「固定」加密,字元長度 40

什麼是固定加密?顧名思義就是每次加密的結果是一樣的,也就是如此的特性才可以拿來當作密碼比對。

變動的加密字串

那有變動加密嗎?在 PHP 裡也是有的,可以使用 crypt()

產生加密,以 sha256 為例

當下產生的加密字串為

使用 uniqid() 的緣故,所以重新整理每次產生的字串皆不同,如此即可防止兩個相同的密碼被輕易破解

查核密碼時,因為字串變動的緣故無法單純的使用字串比對的方式,還是需要使用 crypt() function 來檢查

案例二:一個相對精簡的案例

2,100 total views, no views today