Speech 服務(wù)是認(rèn)知服務(wù)的一種,提供了語音轉(zhuǎn)文本,文本轉(zhuǎn)語音, 語音翻譯等,今天我們實(shí)戰(zhàn)的是語音轉(zhuǎn)文本(Speech To Text)。
創(chuàng)新互聯(lián)是一家專業(yè)提供港口企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、html5、小程序制作等業(yè)務(wù)。10年已為港口眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。STT支持兩種訪問方式,1.是SDK,2.是REST API。
其中:
SDK方式支持?識(shí)別麥克風(fēng)的語音流 和 語音文件;
REST API方式僅支持語音文件;
準(zhǔn)備工作:創(chuàng)建 認(rèn)知服務(wù)之Speech服務(wù):
創(chuàng)建完成后,兩個(gè)重要的參數(shù)可以在頁面查看:
一. REST API方式將語音文件轉(zhuǎn)換成文本:
Azure global的 Speech API 終結(jié)點(diǎn)請(qǐng)參考:
https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/rest-speech-to-text#regions-and-endpoints
Azure 中國區(qū)?的 Speech API 終結(jié)點(diǎn):
截至到2020.2月,僅中國東部2區(qū)域已開通Speech服務(wù),服務(wù)終結(jié)點(diǎn)為:
https://chinaeast2.stt.speech.azure.cn/speech/recognition/conversation/cognitiveservices/v1
對(duì)于Speech To Text來說,有兩種身份驗(yàn)證方式:
其中Authorization? Token有效期為10分鐘。
為了簡(jiǎn)便,本文使用了Ocp-Apim-Subscription-Key的方式。
注意:如果要實(shí)現(xiàn)文本轉(zhuǎn)語音,按照上表,則必須使用 Authorization Token形式進(jìn)行身份驗(yàn)證。
構(gòu)建請(qǐng)求的其他注意事項(xiàng):
文件格式:
請(qǐng)求頭:
需要注意的是,Key或者Authorization是二選一的關(guān)系。
請(qǐng)求參數(shù):
在Postman中的示例如下:
如果要在REST API中使用 Authorization Token,則需要先獲得Token:
Global 獲取Token的終結(jié)點(diǎn):
https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/rest-speech-to-text#authentication
中國區(qū)獲取Token的終結(jié)點(diǎn):
截至2020.02,只有中國東部2有Speech服務(wù),其Token終結(jié)點(diǎn)為:
https://chinaeast2.api.cognitive.azure.cn/sts/v1.0/issuetoken
Postman獲取Token 參考如下:
二. SDK方式將語音文件轉(zhuǎn)換成文本(Python示例):
在官網(wǎng)可以看到類似的代碼,但需要注意的是,該代碼僅在Azure Global的Speech服務(wù)中正常工作,針對(duì)中國區(qū),需要做特定的修改(見下文)。
import azure.cognitiveservices.speech as speechsdk # Creates an instance of a speech config with specified subscription key and service region. # Replace with your own subscription key and service region (e.g., "chinaeast2"). speech_key, service_region = "YourSubscriptionKey", "YourServiceRegion" speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region) # Creates an audio configuration that points to an audio file. # Replace with your own audio filename. audio_filename = "whatstheweatherlike.wav" audio_input = speechsdk.AudioConfig(filename=audio_filename) # Creates a recognizer with the given settings speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_input) print("Recognizing first result...") # Starts speech recognition, and returns after a single utterance is recognized. The end of a # single utterance is determined by listening for silence at the end or until a maximum of 15 # seconds of audio is processed. ?The task returns the recognition text as result. # Note: Since recognize_once() returns only a single utterance, it is suitable only for single # shot recognition like command or query. # For long-running multi-utterance recognition, use start_continuous_recognition() instead. result = speech_recognizer.recognize_once() # Checks result. if result.reason == speechsdk.ResultReason.RecognizedSpeech: ? ?print("Recognized: {}".format(result.text)) elif result.reason == speechsdk.ResultReason.NoMatch: ? ?print("No speech could be recognized: {}".format(result.no_match_details)) elif result.reason == speechsdk.ResultReason.Canceled: ? ?cancellation_details = result.cancellation_details ? ?print("Speech Recognition canceled: {}".format(cancellation_details.reason)) ? ?if cancellation_details.reason == speechsdk.CancellationReason.Error: ? ? ? ?print("Error details: {}".format(cancellation_details.error_details))
代碼提供頁面:
https://docs.azure.cn/zh-cn/cognitive-services/speech-service/quickstarts/speech-to-text-from-file?tabs=linux&pivots=programming-language-python#create-a-python-application-that-uses-the-speech-sdk
針對(duì)中國區(qū),需要使用自定義終結(jié)點(diǎn)的方式,才能正常使用SDK:
speech_key,?service_region?=?"Your?Key",?"chinaeast2" template?=?"wss://{}.stt.speech.azure.cn/speech/recognition"?\ ???????????????"/conversation/cognitiveservices/v1?initialSilenceTimeoutMs={:d}&language=zh-CN" speech_config?=?speechsdk.SpeechConfig(subscription=speech_key, endpoint=template.format(service_region,?int(initial_silence_timeout_ms)))中國區(qū)完整代碼為:
#!/usr/bin/env?python #?coding:?utf-8 #?Copyright?(c)?Microsoft.?All?rights?reserved. #?Licensed?under?the?MIT?license.?See?LICENSE.md?file?in?the?project?root?for?full?license?information. """ Speech?recognition?samples?for?the?Microsoft?Cognitive?Services?Speech?SDK """ import?time import?wave try: ????import?azure.cognitiveservices.speech?as?speechsdk except?ImportError: ????print(""" ????Importing?the?Speech?SDK?for?Python?failed. ????Refer?to ????https://docs.microsoft.com/azure/cognitive-services/speech-service/quickstart-python?for ????installation?instructions. ????""") ????import?sys ????sys.exit(1) #?Set?up?the?subscription?info?for?the?Speech?Service: #?Replace?with?your?own?subscription?key?and?service?region?(e.g.,?"westus"). speech_key,?service_region?=?"your?key",?"chinaeast2" #?Specify?the?path?to?an?audio?file?containing?speech?(mono?WAV?/?PCM?with?a?sampling?rate?of?16 #?kHz). filename?=?"D:\FFOutput\speechtotext.wav" def?speech_recognize_once_from_file_with_custom_endpoint_parameters(): ????"""performs?one-shot?speech?recognition?with?input?from?an?audio?file,?specifying?an ????endpoint?with?custom?parameters""" ????initial_silence_timeout_ms?=?15?*?1e3 ????template?=?"wss://{}.stt.speech.azure.cn/speech/recognition/conversation/cognitiveservices/v1?initialSilenceTimeoutMs={:d}&language=zh-CN" ????speech_config?=?speechsdk.SpeechConfig(subscription=speech_key, ????????????endpoint=template.format(service_region,?int(initial_silence_timeout_ms))) ????print("Using?endpoint",?speech_config.get_property(speechsdk.PropertyId.SpeechServiceConnection_Endpoint)) ????audio_config?=?speechsdk.audio.AudioConfig(filename=filename) ????#?Creates?a?speech?recognizer?using?a?file?as?audio?input. ????#?The?default?language?is?"en-us". ????speech_recognizer?=?speechsdk.SpeechRecognizer(speech_config=speech_config,?audio_config=audio_config) ???? ????result?=?speech_recognizer.recognize_once() ????#?Check?the?result ????if?result.reason?==?speechsdk.ResultReason.RecognizedSpeech: ????????print("Recognized:?{}".format(result.text)) ????elif?result.reason?==?speechsdk.ResultReason.NoMatch: ????????print("No?speech?could?be?recognized:?{}".format(result.no_match_details)) ????elif?result.reason?==?speechsdk.ResultReason.Canceled: ????????cancellation_details?=?result.cancellation_details ????????print("Speech?Recognition?canceled:?{}".format(cancellation_details.reason)) ????????if?cancellation_details.reason?==?speechsdk.CancellationReason.Error: ????????????print("Error?details:?{}".format(cancellation_details.error_details)) speech_recognize_once_from_file_with_custom_endpoint_parameters()需要注意的是,如果我們使用SDK識(shí)別麥克風(fēng)中的語音,則將
speech_recognizer?=?speechsdk.SpeechRecognizer(speech_config=speech_config,?audio_config=audio_config)修改為如下即可(去掉audio_config參數(shù)):
speech_recognizer?=?speechsdk.SpeechRecognizer(speech_config=speech_config)公眾號(hào)鏈接:https://mp.weixin.qq.com/s/NA9kQsVDfzTXEqHMTdDExA
語雀地址:https://www.yuque.com/seanyu/azure/blwb5i
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享題目:AzureCognitiveServices-Spee-創(chuàng)新互聯(lián)
文章源于:http://jinyejixie.com/article0/ccioio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站維護(hù)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容