C# 微軟語音辨識/語音合成結合OpenAI ChatGPT 變成ai人工智慧管家

透過微軟azure上的語音服務,辨識麥克風傳入的聲音後將語音轉成文字
接著再把文字送到open ai api中的chatgpt 模型中取得回應內容
最後再將回應內容透過語音合成送出

參考:
Introducing ChatGPT and Whisper APIs
https://openai.com/blog/introducing-chatgpt-and-whisper-apis
openai api
https://platform.openai.com/docs/guides/chat

Betalgo.OpenAI.GPT3
https://www.nuget.org/packages/Betalgo.OpenAI.GPT3/6.7.0
https://github.com/betalgo/openai

對 Azure DevOps 導入有興趣值得一聽的~Azure DevOps導入與數位轉型祕辛

這是 ‧NET Walker 大內行者 董大偉老師舉辦的一場很棒的線上課程,除了二位老師外還有 Will 保哥的技術交流中心 的保哥。在FB還可以看到 安德魯的部落格 Andrew Wu 的留言,大約2個小時多的直播中。從一開始為何導入Azure DevOps 是為了Sprint週期變短以及Dev+Ops等指標。討論交付時間延長就等於安全交付?實際開發狀況是專案時間就夠緊迫了,我要有辦法去做TDD?CodeReview?重構?技術債改善這些事嗎? 接著探討頻繁交付的適當性等議題。 大家可以聽一聽實務界技術大老討論,不過說真的沒有對錯,能夠讓自己公司團隊做出質量好產出的就是適合自己的方法。

AWS/Azure 雲端系統中文顯示亂碼解決

不管在AWS開EC2,還是Azure開虛擬機器,上面預設安裝的系統都會是英文版的。

要顯示中文的話除了在語言上面要新增中文繁體,台灣外

也要記得在設定中的地區系統管理,有一個非Unicode程式的語言,要變更為中文 繁體.台灣,不然會出現亂碼的冏境。

微軟Microsoft人工智慧AI運用範疇影片

http://superlevin.tw/%E5%BE%AE%E8%BB%9Fmicrosoft%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7ai%E9%81%8B%E7%94%A8%E7%AF%84%E7%96%87%E5%BD%B1%E7%89%87/

 

eat River 醫療中心運用 Microsoft 的技術和裝置打造自動化的端對端藥物管理系統,大幅降低病患的等待時間、輸入資料的錯誤機率、藥物成本,讓病患更迅速地復原。

天全球有超過450億公升的水,因為水管漏水或破裂而流失,這相當2億人的每日用水。Grundfos 的智慧泵浦,透過Azure IoT 收集來自智慧感測器的據數,並利用Cortana Intelligence 的大數據分析,即時預測應對漏水問題,再搭配氣候數據,預估暴雨的發生地,提早策略性儲水。Grundfos 智慧泵浦在永續的水資源中扮演關鍵角色。

參考: https://gallery.azure.ai/experiments

平均每秒銷售一台印表機,每年銷售超過 5,000 萬台 PC,HP 每年需接觸超過 6 億個客戶,同為科技公司的 HP 很快地就發現,微軟的人工智慧可以協助他們處理客戶爆炸性的需求,AI 讓客戶解決問題的比例從 20-30%,提升至 70-80%,而後台儀表板更能提供關鍵指標,協助持續優化客服成果!

Microsoft Azure AI 技術 – 認知服務介紹 : https://azure.microsoft.com/zh-tw/services/cognitive-services/
不只看得懂數據,人工智慧也會分析影像!不論是城市中的監視器或是人手一支的行動電話,每天都有數量驚人的影像產生。而 Prism Skylabs 看準了藏在攝影鏡頭中的資訊,透過微軟認知服務的計算機視覺 API,幫助組織機構搜索閉路電視和安防攝像頭所拍攝的內容,讓企業一手掌握特定的事件、物品和人員!

Uber 正在使用 Microsoft Cognitive Services 提供即時身分識別確認。Uber 司機必須自拍自己的照片,並通過身分驗證才能載客。

有能力服務客戶的人,才能留下客戶,於是梅西百貨決心用人工智慧來擴增服務能量,消費者可以透過任何管道向梅西詢問,客服機器人會人性化的回答問題,帶領消費者找到答案,不必再翻找 FAQ,即使真人客服員,也可以藉由客服機器人的協助,快速上線工作,減少訓練的成本,在影片中您可以看到這是個有溫度的服務,它不僅滑潤了客戶關係,也為企業帶來更多的利潤!


日本電信大廠軟體銀行 (SoftBank) 的人形機器人 「Pepper」與微軟的雲端平台「Azure」利用線上大數據分析追蹤銷售品項,協助零售商更靈活調節庫存管理,同時記錄顧客的特性與需求,並搭載情感認知,客製化推薦顧客所需,創造零售購物新體驗。另外,Pepper 同時具備翻譯功能,可以服務更多來自不同地區旅客。

Great River 醫療中心運用 Microsoft 的技術和裝置打造自動化的端對端藥物管理系統,大幅降低病患的等待時間、輸入資料的錯誤機率、藥物成本,讓病患更迅速地復原。

全球有超過450億公升的水,因為水管漏水或破裂而流失,這相當2億人的每日用水。Grundfos 的智慧泵浦,透過Azure IoT 收集來自智慧感測器的據數,並利用Cortana Intelligence 的大數據分析,即時預測應對漏水問題,再搭配氣候數據,預估暴雨的發生地,提早策略性儲水。Grundfos 智慧泵浦在永續的水資源中扮演關鍵角色。

Delphi XE8使用Microsoft Azure Translator微軟線上翻譯服務

在微軟的Microsoft Azure Marketplace有許多不錯的資料可以應用,今天就分享如果利用XE8搭配Microsoft Translator線上翻譯服務來做翻譯。
一、註冊Azure帳戶

點選 https://datamarket.azure.com/dataset/bing/microsofttranslator 上的登入,使用個人。然後依照步驗註冊就好。
tran002

二、訂閱服務
進入 https://datamarket.azure.com/dataset/bing/microsofttranslator ,點選2000000字元數/月的免費方案註冊。

tran001

tran004

 

tran005 tran006
三、註冊程式
程式中需要client_id跟client_secret ,所以到 https://datamarket.azure.com/developer/applications 註冊程式。

client_id就是用戶端識別碼

client_secret就是用戶端密碼

tran007
四、開始建立程式

新增一個Blank Application

001

接著在上面增加三個元件,TRESTClient、TRESTRequest跟TRESTResponse。重新命名為RESTClientAuthToken、RESTRequestAuthToken跟RESTResponseAuthToken.

002

 

RESTClientAuthToken的BaseURL設定 https://datamarket.accesscontrol.windows.net/v2

003

 

RESTRequestAuthToken的Method改為rmPOST、然後Resource設為OAuth2-13(參考 https://msdn.microsoft.com/en-us/library/hh454950.aspx)

 

004

 

然後在Params增加四個參數如下

 

005

 

在畫面上增加3個label、3個edit以及一個button

 

006

加上程式碼

[pascal]
var
token: string;
begin
RESTRequestAuthToken.Params.ParameterByName(‘client_secret’).Value := EditClient_Secret.Text;
RESTRequestAuthToken.Params.ParameterByName(‘client_id’).Value := EditClient_ID.Text;
RESTRequestAuthToken.Execute;
if RESTResponseAuthToken.GetSimpleValue(‘access_token’,token) then
begin
EditToken_value.Text := token;
end;
[/pascal]

取得Token值後我們可以開始進行翻譯,參考的文件為(https://msdn.microsoft.com/en-us/library/ff512387.aspx),一樣增加三個元件,TRESTClient、TRESTRequest跟TRESTResponse。重新命名為RESTClientTranslate、RESTRequestTranslate跟RESTResponseTranslate.。

RESTClientTranslate的BaseURL設為 http://api.microsofttranslator.com/v2/Http.svc

007

 

接著在RESTRequestTranslate的Resource設為Translate?text={text}&from={from}&to={to}

 

008

一樣在裡面增加四個Params,from跟to需要對應相關的語言代碼(參考https://msdn.microsoft.com/en-us/library/hh456380.aspx

009

在畫面上增加combobox二個,以及二個memo及button。

011

 

開啟view→LiveBindings Designer,將RESTRequestTranslate中的Params.text指到Memo1的Text(輸入),然後RESTResponseTranslate.的Content指向Memo2的Text(輸出)。

010

 

最後補上翻譯的程式碼如下。

[pascal]
RESTRequestTranslate.Params.ParameterByName(‘Authorization’).Value := ‘bearer ‘+EditToken_value.Text;
RESTRequestTranslate.Params.ParameterByName(‘from’).Value := cbFrom.Selected.Text;
RESTRequestTranslate.Params.ParameterByName(‘to’).Value := cbToo.Selected.Text;
RESTRequestTranslate.Execute;
[/pascal]

番外篇:
語音的部份(參考 https://msdn.microsoft.com/en-us/library/ff512420.aspx)
增加一個RESTRequestPlay,然後設定Resource為 speak?text={text}&language={language}&to={to}&format=audio/mp3&options=MinSize 。
三個Param為 Authorization、text、language
以及增加mediaplayer。
程式如下

[pascal]
var
MS: TMemoryStream;
TempFile: string;
begin
RESTRequestPlay.Params.ParameterByName(‘Authorization’).Value := ‘bearer ‘+EditToken_value.Text;
RESTRequestPlay.Params.ParameterByName(‘language’).Value := RESTRequestTranslate.Params.ParameterByName(‘to’).Value;
RESTRequestPlay.Params.ParameterByName(‘text’).Value := RESTResponseTranslate.Content;
RESTRequestPlay.Execute;
MS := TMemoryStream.Create;
try
MS.WriteData(RESTResponsePlay.RawBytes,Length(RESTResponsePlay.RawBytes));
TempFile := TPath.ChangeExtension(TPath.GetTempFileName,’.mp3′);
MS.SaveToFile(TempFile);
MediaPlayer1.FileName := TempFile;
MediaPlayer1.Play;
finally
MS.Free;
end;
end;
[/pascal]

API參考

https://msdn.microsoft.com/en-us/library/dd576287.aspx

程式碼下載

https://drive.google.com/file/d/0BxMN7KkA7p3NZlU5clItaGxiMzQ/view?usp=sharing

原文:
http://blogs.embarcadero.com/stephenball/2015/06/30/using-azure-translator-services-with-delphi/