機(jī)器學(xué)習(xí)服務(wù)提取圖片的特征向量">使用SAP Leonardo上的機(jī)器學(xué)習(xí)服務(wù)提取圖片的特征向量
906
2025-03-31
前言
我這邊參加了CSDN與微軟Azure舉辦的0元試用微軟Azure人工智能認(rèn)知服務(wù)活動(dòng)。第一次使用微軟Azure 認(rèn)知服務(wù),老實(shí)說(shuō),還是滿心期待的。
@[TOC]
正式開(kāi)始試用
登錄地址: 點(diǎn)此開(kāi)啟試用之旅 ,這個(gè)認(rèn)知服務(wù)有點(diǎn)不好找,還有有個(gè)搜索的功能,直接搜索一下,認(rèn)知服務(wù),即可找到本次測(cè)評(píng)所需要的服務(wù)。
這個(gè)界面還是比較間接大氣的。
第一次進(jìn)來(lái)需要新建一個(gè)資源組。這個(gè)資源組主要是用來(lái)保管Azure各個(gè)服務(wù)的相關(guān)資源。
這里我創(chuàng)建了一個(gè)名為feigeVoice的語(yǔ)音服務(wù),耐心等待系統(tǒng)部署,部署完成之后的界面如下圖所示。
接著點(diǎn)擊賺到資源,在左側(cè)窗格中的“資源管理”下,選擇“密鑰和終結(jié)點(diǎn)”
點(diǎn)擊之后展示的界面如下圖所示,請(qǐng)記住這個(gè)密鑰和終結(jié)點(diǎn)的位置,因?yàn)楹竺婢帉懡涌跁r(shí)還需要使用。
每個(gè)訂閱有兩個(gè)密鑰;可在應(yīng)用程序中使用任意一個(gè)密鑰。
至此,一個(gè)語(yǔ)音服務(wù)就弄好了,這個(gè)語(yǔ)音服務(wù)給可以給我們的應(yīng)用提供語(yǔ)音轉(zhuǎn)文本、文本轉(zhuǎn)語(yǔ)音、翻譯和說(shuō)話人識(shí)別 三種能力。下面就在我們的應(yīng)用中接入這三種功能吧。
第一件事情是做什么呢?當(dāng)然是找SDK呀?。。。。?/p>
環(huán)境
語(yǔ)言 Python 3.9
開(kāi)發(fā)環(huán)境 PyCharm
系統(tǒng)環(huán)境 Mac OS
SDK的位置
微軟這個(gè)SDK的位置還有點(diǎn)偏僻,下面我就介紹一下如何查找SDK以及開(kāi)發(fā)文檔。
在
點(diǎn)擊之后會(huì)跳轉(zhuǎn)到一個(gè)新的頁(yè)面,也就是幫助和支持頁(yè)面
在該頁(yè)面上選中【 文檔 】圖標(biāo)之后就正式進(jìn)入了 Azure文檔頁(yè)面了??梢园言擁?yè)面的地址保存下來(lái),以后就不用這么麻煩了。
Azure文檔的頁(yè)面地址:https://docs.azure.cn/zh-cn/#pivot=get-started
拉到最下面找到我們本次試用的【認(rèn)知服務(wù)】上面。
在點(diǎn)擊【認(rèn)知服務(wù)】按鈕,就可以進(jìn)入認(rèn)知服務(wù)的開(kāi)發(fā)者文檔頁(yè)面了。進(jìn)入該頁(yè)面之后在接著點(diǎn)擊我們本次試用的語(yǔ)音服務(wù)了。
終于到最后一個(gè)頁(yè)面了,即將可以看到我們需要的SDK以及開(kāi)發(fā)文檔了,小伙伴們是不是很開(kāi)心很激動(dòng)呀。
下面我們就挨個(gè)服務(wù)體驗(yàn)一下,康康它到底好不好用?。。。?!這里點(diǎn)擊了關(guān)于語(yǔ)音轉(zhuǎn)文本的按鈕,就進(jìn)入了下面這個(gè)頁(yè)面。對(duì)于這種格式的文檔,相信每個(gè)開(kāi)發(fā)小伙伴都不會(huì)感到陌生。
語(yǔ)音識(shí)別(語(yǔ)音轉(zhuǎn)文本)
在左側(cè)菜單欄找到【語(yǔ)音轉(zhuǎn)文本快速入門】按鈕。接著選擇編程語(yǔ)言或GLI。這里我選擇的是Python語(yǔ)言
接下來(lái)就是按照文檔操作一遍。
安裝語(yǔ)音SDK
pip install azure-cognitiveservices-speech
安裝語(yǔ)音 SDK 后,將其導(dǎo)入到 Python 項(xiàng)目中。
import azure.cognitiveservices.speech as speechsdk
創(chuàng)建語(yǔ)音配置
若要使用語(yǔ)音 SDK 調(diào)用語(yǔ)音服務(wù),需要?jiǎng)?chuàng)建 SpeechConfig。 此類包含有關(guān)訂閱的信息,例如密鑰和關(guān)聯(lián)的位置/區(qū)域、終結(jié)點(diǎn)、主機(jī)或授權(quán)令牌。 使用密鑰和位置/區(qū)域創(chuàng)建 SpeechConfig。 請(qǐng)參閱查找密鑰和位置/區(qū)域頁(yè)面,查找密鑰位置/區(qū)域?qū)Α?/p>
speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion" speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region, speech_recognition_language="zh-cn") speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)
說(shuō)白了 speech_key 傳入的是前面的密鑰1或者密鑰2,service_region傳入前面的位置/區(qū)域,也就是 chinaeast2
5. 從麥克風(fēng)中直接識(shí)別語(yǔ)音
若要使用設(shè)備麥克風(fēng)識(shí)別語(yǔ)音,只需創(chuàng)建 SpeechRecognizer(無(wú)需傳遞 AudioConfig),并傳遞 speech_config。
語(yǔ)音合成(文本轉(zhuǎn)語(yǔ)音)
語(yǔ)音識(shí)別搞完之后,按照同樣的套路。我們接著來(lái)弄下語(yǔ)音合成。與語(yǔ)音識(shí)別相同的步驟,在此就不在贅述了,這里主要展示下如何使用語(yǔ)音合成功能吧。
安裝語(yǔ)音服務(wù)SDK,如果已經(jīng)安裝則忽略該步驟。
pip install azure-cognitiveservices-speech
安裝語(yǔ)音 SDK 后,在腳本頂部包含以下 import 語(yǔ)句。
import azure.cognitiveservices.speech as speechsdk from azure.cognitiveservices.speech.audio import AudioOutputConfig
創(chuàng)建語(yǔ)音配置
若要使用語(yǔ)音SDK調(diào)用語(yǔ)音服務(wù),則需要?jiǎng)?chuàng)建SpeechConfig。
speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion" speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
將語(yǔ)音合成到文件中,完整代碼如下:
import azure.cognitiveservices.speech as speechsdk from azure.cognitiveservices.speech import SpeechSynthesizer from azure.cognitiveservices.speech.audio import AudioOutputConfig speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion" speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region) #設(shè)置合成的音頻為中文 speech_config.speech_synthesis_language = "zh-CN" # 設(shè)置保存音頻的文件 audio_config = AudioOutputConfig(filename="test.wav") #在控制臺(tái)輸入想要合成的話 print("請(qǐng)輸入你想合成的話...") text = input() #創(chuàng)建synthesizer對(duì)象, synthesizer = SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config) # 調(diào)用speak_text_async 將文本合成為音頻 synthesizer.speak_text_async(text)
運(yùn)行結(jié)果是:
語(yǔ)音翻譯
語(yǔ)音翻譯也是類似的。
安裝語(yǔ)音SDK,導(dǎo)入語(yǔ)音SDK,創(chuàng)建語(yǔ)音配置與前面相同,在此就不在贅述了,直接貼出代碼
import azure.cognitiveservices.speech as speechsdk # 源語(yǔ)言是英語(yǔ),目標(biāo)語(yǔ)言是德語(yǔ),PS:翻譯成中文報(bào)錯(cuò) from_language, to_language = 'en-US', 'de' speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion" translation_config = speechsdk.translation.SpeechTranslationConfig( subscription=speech_key, region=service_region)
初始化翻譯識(shí)別器
創(chuàng)建SpeechTranslationConfig后,下一步就是初始化TranslationRecognizer。初始化TranslationRecognizer后,需要向其傳遞translation_config。
如果使用的是設(shè)備默認(rèn)麥克風(fēng)識(shí)別語(yǔ)音的話,則 TranslationRecognizer 應(yīng)如下所示:
def translate_speech_to_text(): translation_config = speechsdk.translation.SpeechTranslationConfig( subscription=speech_key, region=service_region) translation_config.speech_recognition_language = from_language translation_config.add_target_language(to_language) recognizer = speechsdk.translation.TranslationRecognizer( translation_config=translation_config)
翻譯語(yǔ)音
為了翻譯語(yǔ)音,語(yǔ)音 SDK 依賴于麥克風(fēng)或音頻文件輸入。 在語(yǔ)音翻譯之前先進(jìn)行語(yǔ)音識(shí)別。 初始化所有對(duì)象后,調(diào)用識(shí)別一次的函數(shù)并獲取結(jié)果。完整代碼如下:
mport azure.cognitiveservices.speech as speechsdk speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion" from_language, to_language = 'en-US', 'de' # from_language, to_language = 'en-US', 'zh-cn' def translate_speech_to_text(): translation_config = speechsdk.translation.SpeechTranslationConfig( subscription=speech_key, region=service_region) translation_config.speech_recognition_language = from_language translation_config.add_target_language(to_language) recognizer = speechsdk.translation.TranslationRecognizer( translation_config=translation_config) print('Say something...') result = recognizer.recognize_once() print(get_result_text(reason=result.reason, result=result)) def get_result_text(reason, result): reason_format = { speechsdk.ResultReason.TranslatedSpeech: f'RECOGNIZED "{from_language}": {result.text}\n' + f'TRANSLATED into "{to_language}"": {result.translations[to_language]}', speechsdk.ResultReason.RecognizedSpeech: f'Recognized: "{result.text}"', speechsdk.ResultReason.NoMatch: f'No speech could be recognized: {result.no_match_details}', speechsdk.ResultReason.Canceled: f'Speech Recognition canceled: {result.cancellation_details}' } return reason_format.get(reason, 'Unable to recognize speech') translate_speech_to_text()
運(yùn)行結(jié)果
機(jī)器人 語(yǔ)音通話
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。