發表文章

目前顯示的是有「Azure AI」標籤的文章

使用 Video Indexer 做為活動影片處理方案

圖片
又到了一年一度的尾牙節期。 朋友公司每年參與舉辦很多尾牙活動,身為主辦單位,活動的紀錄當然是重點之一,記錄不是問題,請了一大票工讀生,拍照攝影帶回了大把的素材,等到要整理的時候,才是惡夢的開始。 連續看他唸了好幾年,雖然不關我的事,但我還是很好奇他到底怎麼做影片的整理和歸類的? 『就一段一段看啊?』他說。 『什麼?』我疑惑的問:『 那不是要花很多時間?』 『當然啊,不然怎麼辦?』他問。 怎麼辦,現在 AI 時代耶,當然是用 AI 處理啊。 我跟他介紹 Video Indexer ( https://www.videoindexer.ai/ ),他驚為天人: 這網站可以把上傳的影片逐格(frame)分析,不僅能夠自動為影片自動加上字幕(當然,支援中文),還自動幫你找到出現在影片裡面的每一個人物: 這個功能非常關鍵,它可以輕鬆地幫我們找到某人出現在影片中的每一個片段,以便於來做剪輯與後製。 以前,活動結束之後,要剪出特定人物的精華集,常常得先看完一整部片子,找出該人所有出現的段落。現在人人都有手機攝影,一場活動下來隨便也拍了十幾二十小時的影片,影片常常還來自不同的拍攝者,事情相當棘手。 如今,透過AI工具,可以直接幫你把某人出現在影片的哪裡,都標註的清清楚楚,使用Web界面點選人頭,就可以跳到該片段出現的位置,非常好用: 不僅如此,AI工具還幫你標出影片中各種場景的tag,highlight各種出現的物件: 甚至還能判斷影片中每個段落的情緒: 有這個工具,你可以輕鬆地找到每一個你想要的精華,即便沒有看完所有的影片與段落,都不會錯過任何細節。 很讚吧! 不用謝,今年辦完活動之後,不要再熬夜剪片,好好睡個覺吧。

使用 Azure Vision API 之 奇怪錯誤訊息

圖片
最近 AI 很紅,連帶著 Azure AI 詢問度也很高。最近很多企業客戶紛紛參與Azure的 AI 教育訓練。這個訓練課程中, Computer Vision 也是重點之一。 其實 Azure 上的 Computer Vision 功能很強,模型也都封裝好放上雲端,可以透過REST API的方式進行呼叫,從2016年起,我們就在 Blog 上多次介紹過這個 API,相關文章可以參考 這裡 。 但這一陣子頻繁的帶著學員操作,看到學員在使用postman呼叫API時,常發生許多有趣的bug,整理一下,和大家一起分享。 要使用Computer Vision,你只需要申請好一組 endpoint,並且取得 key 即可,這很簡單: 從 文件 上可以看到,使用此API,可以辨識人臉、取得圖片說明、判斷成人圖片,因此你使用了底下這樣的呼叫,可是卻硬生生地得到 HTTP 400 的錯誤: 如果你對 Azure AI 熟悉的話不妨挑戰一下,先停在這邊,看看上面這個呼叫指令可能有什麼錯? 從訊息看起來是 NotSupportedVisualFeature 但你放大觀察 VisualFeature 的部分,看起來也沒啥問題: 哪怎麼回事? 結果發現,網址列多一個空白: 這樣也不行? 對,這樣也不行。 另外學員常常也碰到的錯誤像是收到 404,但 endpoint 明明正確: 結果是,http method用錯: 從Get改為POST問題就解決了。 至於什麼把本來該放在 Header 的 key 錯放到 parameter 結果收到 401 的錯誤,也是見怪不怪了: 這些都很簡單,但是稍微注意一下,會減少你走冤枉路的時間。畢竟,平常工作已經很累了,把時間花在這種 debug 事情上,有些冤枉了。 我們在透過程式碼呼叫雲端的API前,我都建議同仁先用 postman 測試一下,如果測不過,就先別急著寫程式了,先搞定API,測通了再寫code,往往事半功倍,否則如果從程式碼開始卡關,你會debug的更辛苦。😆

非常擬真的文字轉聲音服務(TTS)

Azure Speech服務除了可以將語音轉為文字,當然也可以從文字輸出語音。 我們看執行的結果:(有聲音) 上面這個影片當中,你會同時看到文字轉語音和語音轉文字,一開始的時候,我們讓電腦說出: 請透過語音下達指令…, 直到說 ‘我要離開’ 執行的是底下這段程式碼: await Speak ( speechConfig , "請透過語音下達指令..., 直到說 '我要離開'" ) ; 而Speak方法的內容如下: async static Task Speak ( SpeechConfig speechConfig , string text ) { // Configure speech synthesis speechConfig . SpeechSynthesisLanguage = "zh-TW" ; speechConfig . SpeechSynthesisVoiceName = "zh-TW-HsiaoChenNeural" ; //女生 speechConfig . SpeechSynthesisVoiceName = "zh-TW-YunJheNeural" ; //男生 using SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer ( speechConfig ) ; // Synthesize spoken output SpeechSynthesisResult speak = await speechSynthesizer . SpeakTextAsync ( text ) ; if ( speak . Reason != ResultReason . SynthesizingAudioCompleted ) { Cons...

非常厲害的語音轉文字(語音識別, STT)服務

在Azure的cognitive services當中,也有非常厲害的語音轉文字(語音識別)服務,從底下的這個 Console程式中你可以發現,語音服務幾乎完整的辨識筆者講的話,甚至速度加快也可以,中英文夾雜也可以: 要使用此服務相當簡單,同樣在Azure Portal上申請即可: 申請完成之後,取得 key 和 location,即可透過 .net SDK來開發。 例如,如果你想做一個語音助理,希望寫程式來識別用戶說的話,其實程式碼可能只有類似底下這幾行: using System ; using System . Text ; using System . Threading . Tasks ; using Microsoft . CognitiveServices . Speech ; using Microsoft . CognitiveServices . Speech . Audio ; namespace STT_example { class Program { async static Task FromMic ( SpeechConfig speechConfig ) { using var audioConfig = AudioConfig . FromDefaultMicrophoneInput ( ) ; using var recognizer = new SpeechRecognizer ( speechConfig , "zh-tw" , audioConfig ) ; Console . WriteLine ( "嗨~ 請透過語音下達指令..., 直到說 '我要離開' " ) ; var text = "" ; while ( ! text . Contains ( "離開" ) ) { var result = await...

使用AI服務擷取文章重點

圖片
在Azure Cognitive Services 服務當中,文字分析(Text Analysis)服務可以針對用戶上傳的文字進行剖析,例如『文字情緒分析』、『關鍵字詞擷取』、『文字摘要』…等。這些服務都以rest api的形式出現,你只需要先取得呼叫API所需的金鑰與端點即可。 底下影片展示如何從 Azure Portal 建立『文字分析服務』,並且找到金鑰與端點: 有了金鑰與端點後,就可以透過程式碼來呼叫其功能。 例如其中的『擷取文章摘要』,是文字分析服務中剛推出沒多久的新功能,可以針對一篇文章、一段文字,抓取其中的重點。 呼叫的endpoint如下: POST { Endpoint } /language/:analyze-text?api-version = 2022-10-01-preview 除了header要傳遞key(金鑰)之外,body要符合底下json格式: { "displayName" : "Document ext Summarization Task Example" , "analysisInput" : { "documents" : [ { "id" : "1" , "language" : "zh" , "text" : "(要分析的文章)" } ] } , "tasks" : [ { "kind" : "ExtractiveSummarization" , "taskName" : "Document Extractive Summarization Task 1" , "parameters" : { "sentenceCount" : 3 } ...

使用Computer Vision中的OCR文字辨識功能

圖片
OCR(Optical Character Recognition)指的是識別圖片中的文字,如果你先前已經成功使用Computer Vision API做影像識別(Image Analysis),那使用Computer Vision API做OCR肯定也難不倒你。 請參考同樣的文件: https://westus.dev.cognitive.microsoft.com/docs/services/computer-vision-v3-2/operations/56f91f2e778daf14a499f20d 你會發現,ORC的API與先前我們介紹過的影像分析幾乎一模一樣,唯一差別是要給定的endpoint URL,最後的結尾是『ocr』。設定如下: 另外,如果要辨識中文,建議要給定language這個queryString參數,值為『zh-Hant』。 有這些資訊就夠了,我們一樣透過postman來測試,關鍵的資訊如下: 關鍵資訊 值 endpoint https://你的endpoint.cognitiveservices.azure.com/vision/v3.2/ocr?language=zh-Hant Ocp-Apim-Subscription-Key(http Header) 你的key Http body {“url”:“要辨識的圖片url”} 透過這些,我們就可以嘗試辨識了。透過Rest API將要辨識的有像位置(url)傳遞過去,辨識的結果會以JSON回傳。 操作影片如下: 影片中,辨識的文件是底下這張圖: 該圖片的網址為: https://i.imgur.com/PWQDiRj.png 你也可以自行試試看,你會發現,中文的辨識度其實非常高,幾乎正確的辨識出每一組文字。 回傳的物件是JSON格式,由於圖片上的文字可能有橫有直,辨識出的結果會是以 Regions, Lines, Words, Text 為結構回傳: 透過 computer Vision 中的 ocr API,取得圖片上的文字變得非常輕鬆。 tags: 電子書 - Azure Cognitive Services

建立與使用Computer Vision(電腦視覺)服務

Computer Vision 是Azure Cognitive Services中,一組作影像識別辨識的API,功能強大,可以進行圖片內容(意義)的識別。也可以找出圖片中的人臉,並且判斷年紀、性別。還可以進行OCR,找出圖片中的文字…等,該服務的官方網站位於: https://learn.microsoft.com/zh-TW/azure/cognitive-services/computer-vision/ 申請使用金鑰 使用上很簡單,可透過SDK或Rest API來呼叫,由於我們要透過程式碼來呼叫使用該服務,因此得先從Azure平台上申請一組Key,並取得Rest API的Endpoint。 請參考影片中的操作: 上面的影片中,你看到我們申請好Computer Vision服務,並取得金鑰與端點的位置。 使用Rest API呼叫識別服務 取得金鑰與端點之後就好辦了,參考官方文件,你會明白如何呼叫,以及API的詳細使用說明。 簡單的說,我們可以把圖片上傳給剛才我們建立好的服務端點(endpoint),然後雲端AI服務就幫我們辨識出圖片的結果(以JSON回傳),而呼叫的時候,需要一個key,僅此而已。 我在上課時,會刻意帶學員從網上找到底下這分文件,並且整個看過一次: https://westus.dev.cognitive.microsoft.com/docs/services/computer-vision-v3-2/operations/56f91f2e778daf14a499f21b 因為呼叫方式雖然常常快速迭代改版,但其實Azure Cognitive Services中幾乎每一個服務都有清晰的文件,只要能找到並看懂文件,抓到重點,呼叫上非常方便。 底下影片介紹你如何在文件中找到幾個關鍵,例如呼叫的參數、呼叫時的http method,以及上傳檔案給endpoint的方法: 看懂文件,你應該知道如何透過rest api呼叫該服務了(使用SDK的方式以後再談),接著,我們可以透過免費的postman工具,來嘗試呼叫該影像辨識服務。 postman是網路上免費可下載的 rest api呼叫測試工具,非常簡單好用。下載位置位於: https://www.postman.com/ 取得postman之後,就可以透過該工具,來...