分享方式:


透過私人端點使用語音服務

Azure Private Link 可讓您使用私人端點連線至 Azure 中的各種服務。 私人端點為僅可在特定虛擬網路和子網路內存取的私人 IP 位址。

本文說明如何搭配語音服務使用以設定和使用 Private Link 與私人端點。 本文接著會說明如何在稍後移除私人端點,但仍使用語音資源。

注意

繼續進行之前,請先檢閱如何搭配使用虛擬網路與 Azure AI 服務

設定私人端點案例的語音資源需要執行下列工作:

  1. 建立自訂網域名稱
  2. 開啟私人端點
  3. 調整現有的應用程式和解決方案

私人端點與虛擬網路服務端點

Azure 會針對通過私人 Azure 骨幹網路的流量,提供私人端點和虛擬網路服務端點。 這些端點類型的用途和基礎技術很類似。 但是這兩種技術之間有些許差異。 建議在設計網路之前,先了解兩者的優缺點。

當決定要使用哪一種技術時,需要考慮幾件事:

  • 這兩種技術都可確保虛擬網路和語音資源之間的流量,不會透過公用網際網路傳送。
  • 私人端點會為您的語音資源提供專用的私人 IP 位址。 此 IP 位址只能在特定虛擬網路和子網路範圍內存取。 您可以完全控制網路基礎結構內對此 IP 位址的存取權。
  • 虛擬網路服務端點不會為語音資源提供專用私人 IP 位址, 而是封裝傳送至語音資源的所有封包,並透過 Azure 骨幹網路直接傳遞這些封包。
  • 這兩種技術都支援內部部署案例。 根據預設,當其使用虛擬網路服務端點時,不能從內部部署網路連線至虛擬網路所保護的 Azure 服務資源。 但您可以變更該行為
  • 虛擬網路服務端點通常用來根據流量來源的虛擬網路,限制語音資源的存取。
  • 對於 Azure AI 服務,啟用虛擬網路服務端點會強制所有 Azure AI 服務資源的流量通過私人骨幹網路。 這需要明確的網路存取設定 (如需詳細資訊,請參閱設定虛擬網路和語音資源網路設定)。私人端點沒有這項限制,因此可為您的網路設定提供更大的彈性。 您可以透過私人骨幹存取一項資源,也可以使用同個虛擬網路的相同子網路,透過公用網際網路存取另一項資源。
  • 私人端點會產生額外的成本。 虛擬網路服務端點為免費使用。
  • 私人端點需要額外的 DNS 設定
  • 一個語音資源可以同時搭配私人端點和虛擬網路服務端點一起運作。

建議在決定生產設計之前,先嘗試這兩種端點類型。

如需詳細資訊,請參閱下列資源:

本文說明如何搭配使用私人端點與語音服務。 此處說明 VNet 服務端點的使用方式。

建立自訂網域名稱

警告

啟用自訂網域名稱的語音資源,會使用不同的方式來與語音服務互動。 您可能必須針對這兩種案例調整應用程式程式碼:使用私人端點使用私人端點

請遵循下列步驟,為您的語音資源建立 Azure AI 服務的自訂子網域名稱

警告

當您開啟自訂網域名稱時,此作業無法復原。 回復為區域名稱的唯一方法,即是建立新的語音資源。

若您的語音資源具有眾多透過 Speech Studio 建立的相關聯自訂模型及專案,強烈建議您先嘗試使用測試資源進行設定,再修改生產環境中所用的資源。

如要使用 Azure 入口網站建立自訂網域名稱,請遵循下列步驟:

  1. 前往 Azure 入口網站並登入 Azure 帳戶。

  2. 選取所需的語音資源。

  3. 在左窗格的 [資源管理] 群組中,選取 [網路]

  4. 在 [防火牆與虛擬網路] 索引標籤上,選取 [產生自訂網域名稱]。 此時會開啟一個新的右面板,說明如何為您的資源建立唯一自訂子網域。

  5. 在 [產生自訂網域名稱] 面板中,輸入自訂網域名稱。 您的完整自訂網域看起來會像這樣:https://{your custom name}.cognitiveservices.azure.com

    請記住,自訂網域名稱一經建立即無法變更。

    輸入自訂網域名稱後,選取 [儲存]

  6. 作業完成後,在 [資源管理] 群組中選取 [金鑰與端點]。 確認資源的新端點名稱是以這種方式啟動:https://{your custom name}.cognitiveservices.azure.com

開啟私人端點

建議使用附加至虛擬網路的私人 DNS 區域,並對私人端點進行必要更新。 您可以在佈建流程中建立私人 DNS 區域。 若您是使用自己的 DNS 伺服器,可能也需要變更您的 DNS 設定。

在您為生產語音資源佈建私人端點之前,請先決定 DNS 策略。 並測試您的 DNS 變更,尤其是當您使用自己的 DNS 伺服器時。

您可參閱下列其中一篇文章來建立私人端點。 這些文章會使用 Web 應用程式做為可透過私人端點使用的範例資源。

使用這些參數,而不是所選文章中的參數:

設定
資源類型 Microsoft.CognitiveServices/accounts
資源 <your-speech-resource-name>
目標子資源 account

私人端點的 DNS:請檢閱〈Azure AI 服務資源中的私人端點 DNS〉的一般準則。 然後藉由執行下列各節所述的檢查,確認您的 DNS 設定是否正常運作。

從虛擬網路解析 DNS

此為必要的檢查。

請遵循下列步驟,從您的虛擬網路測試自訂 DNS 項目:

  1. 登入位於虛擬網路的虛擬機器,該虛擬網路已與您的私人端點連線。

  2. 開啟 Windows 命令提示字元或 Bash 殼層,執行 nslookup,並確認其已成功解析資源的自訂網域名稱。

    C:\>nslookup my-private-link-speech.cognitiveservices.azure.com
    Server:  UnKnown
    Address:  168.63.129.16
    
    Non-authoritative answer:
    Name:    my-private-link-speech.privatelink.cognitiveservices.azure.com
    Address:  172.28.0.10
    Aliases:  my-private-link-speech.cognitiveservices.azure.com
    
  3. 確認 IP 位址符合您私人端點的 IP 位址。

從其他網路解析 DNS

只有在您於資源的 [網路] 區段開啟 [所有網路] 選項或 [選取的網路與私人端點] 存取選項時,才執行這項檢查。

若您打算只使用私人端點來存取資源,則可跳過本節。

  1. 登入已連線至允許存取資源之網路的電腦。

  2. 開啟 Windows 命令提示字元或 Bash 殼層,執行 nslookup,並確認其已成功解析資源的自訂網域名稱。

    C:\>nslookup my-private-link-speech.cognitiveservices.azure.com
    Server:  UnKnown
    Address:  fe80::1
    
    Non-authoritative answer:
    Name:    vnetproxyv1-weu-prod.westeurope.cloudapp.azure.com
    Address:  13.69.67.71
    Aliases:  my-private-link-speech.cognitiveservices.azure.com
              my-private-link-speech.privatelink.cognitiveservices.azure.com
              westeurope.prod.vnet.cog.trafficmanager.net
    

注意

已解析的 IP 位址指向虛擬網路 Proxy 端點,其會將網路流量分派至語音資源的私人端點。 針對具有自訂網域名稱但無私人端點的資源,此行為會有所不同。 如需詳細資訊,請參閱此節

調整應用程式以使用不具私人端點的語音資源

具有自訂網域的語音資源會以不同的方式與語音服務互動。 無論已啟用自訂網域語音的資源是否具有私人端點。 本節中的資訊適用於這兩種案例。

遵循本節中的指示來調整現有的應用程式和解決方案,以使用已開啟自訂網域名稱和私人端點的語音資源。

已開啟自訂網域名稱和私人端點的語音資源,會使用不同的方式來與語音服務互動。 本節說明如何將此類資源與語音服務 REST API 和語音 SDK 搭配使用。

注意

語音資源若無使用自訂網域的私人端點,亦會使用特殊方式來與語音服務互動。 此方式與使用私人端點的語音資源案例不同。 這一點很重要,因為您之後可能會決定移除私人端點。 請參閱本文後段的〈調整應用程式以使用不具私人端點的語音資源〉。

具有自訂網域名稱和私人端點的語音資源:使用 REST API

我們會使用 my-private-link-speech.cognitiveservices.azure.com 作為本節的範例語音資源 DNS 名稱 (自訂網域)。

語音服務具有適用於語音轉換文字文字轉換語音的 REST API。 針對已啟用私人端點的案例,請考量下列資訊。

語音轉換文字有兩個 REST API。 每個 API 都有不同的用途、使用不同的端點,且當您在啟用私人端點的案例中使用它時,需要採取不同的方法。

語音轉換文字 REST API 為:

適用於簡短音訊的語音轉換文字 REST API 以及文字轉換語音 REST API,其使用方式在私人端點案例中皆相同。 這相當於本文後段所述的語音 SDK 案例

語音轉換文字 REST API 會使用一組不同的端點,因此需要針對啟用私人端點的案例使用不同方法。

接下來的小節將說明這兩種情況。

語音轉換文字 REST API

語音資源通常會使用 Azure AI 服務區域端點來與語音轉換文字 REST API 通訊。 這些資源採用下列命名格式:

{region}.api.cognitive.microsoft.com

以下是範例要求 URL:

https://westeurope.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions

注意

請參閱本文,以了解 Azure Government 以及由 21Vianet 端點營運的 Microsoft Azure 相關資訊。

開啟語音資源的自訂網域後 (私人端點所需要),該資源會對基本 REST API 端點使用下列 DNS 名稱模式:

{your custom name}.cognitiveservices.azure.com

這表示在我們的範例中,REST API 端點名稱為:

my-private-link-speech.cognitiveservices.azure.com

您必須將範例要求 URL 轉換成:

https://my-private-link-speech.cognitiveservices.azure.com/speechtotext/v3.1/transcriptions

此 URL 應可從已附加私人端點的虛擬網路存取 (提供正確的 DNS 解析)。

開啟語音資源的自訂網域名稱後,通常會以新的自訂網域主機名稱取代所有要求 URL 中的主機名稱。 要求的所有其他部分 (如先前範例中的路徑 /speechtotext/v3.1/transcriptions) 保持不變。

提示

某些客戶會開發使用區域端點 DNS 名稱區域部分的應用程式 (例如,將要求傳送至部署在特定 Azure 區域) 中的語音資源。

語音資源的自訂網域未包含部署資源所在區域的相關資訊。 因此,先前所述的應用程式邏輯將無法運作,且需要更改。

簡短音訊的語音轉換文字 REST API和文字轉換語音 REST API

適用於簡短音訊的語音轉換文字 REST API 以及文字轉換語音 REST API,會使用兩種類型的端點:

  • Azure AI 服務區域端點用於與 Azure AI 服務 REST API 進行通訊,以取得授權權杖。
  • 其他所有作業的特殊端點

注意

請參閱本文,以了解 Azure Government 以及由 21Vianet 端點營運的 Azure 相關資訊。

本小節說明語音 SDK 的使用,將詳述特殊端點,以及應如何針對啟用私人端點的語音資源轉換其 URL。 此 SDK 所述的準則同樣適用於簡短音訊的語音轉換文字 REST API 及文字轉換語音 REST API。

熟悉上一段所述小節中的內容,然後參閱下列範例。 此範例描述文字轉換語音 REST API。 對於簡短音訊的語音轉換文字 REST API,使用方式與此範例完全相同。

注意

當您在私人端點案例中使用簡短音訊的語音轉換文字 REST API 以及文字轉換語音 REST API 時,請使用透過 Ocp-Apim-Subscription-Key 標頭傳遞的資源金鑰。 (參閱適用於簡短音訊語音轉換文字 REST API文字轉換語音 REST API 的詳細資訊)

只有在您於語音資源的 [網路] 區段中開啟 [所有網路] 存取選項時,方可使用授權權杖並透過 Authorization 標頭將其傳遞至特殊端點。 在其他情況下,當您嘗試取得授權權杖時會遇到 ForbiddenBadRequest 錯誤。

文字轉換語音 REST API 使用範例

我們使用西歐作為範例 Azure 區域,my-private-link-speech.cognitiveservices.azure.com 作為範例語音資源 DNS 名稱 (自訂網域)。 範例中的自訂網域名稱 my-private-link-speech.cognitiveservices.azure.com 屬於西歐區域中所建立的語音資源。

如要取得區域中支援的語音清單,請執行下列要求:

https://westeurope.tts.speech.microsoft.com/cognitiveservices/voices/list

請參閱文字轉換語音 REST API 文件中的其他詳細資訊。

針對啟用私人端點的語音資源,則需要修改相同作業中的端點 URL。 相同的要求如下所示:

https://my-private-link-speech.cognitiveservices.azure.com/tts/cognitiveservices/voices/list

請參閱語音 SDK〈建構端點 URL〉小節中的詳細說明。

具有自訂網域名稱和私人端點的語音資源:使用語音 SDK

若要搭配使用語音 SDK 與自訂網域名稱,以及啟用私人端點的語音資源,您必須檢閱應用程式程式碼且可能需要加以變更。

我們會使用 my-private-link-speech.cognitiveservices.azure.com 作為本節的範例語音資源 DNS 名稱 (自訂網域)。

建構端點 URL

通常在 SDK 案例中 (以及語音轉換文字 REST API 中,適用於簡短音訊和文字轉換語音 REST API 案例),語音資源會針對不同的服務產品使用專用的區域端點。 這些端點的 DNS 名稱格式為:

{region}.{speech service offering}.speech.microsoft.com

DNS 名稱範例如下:

westeurope.stt.speech.microsoft.com

區域的所有可能值 (DNS 名稱的第一個元素) 會列在語音服務支援的區域中。 (關於 Azure Government 以及由 21Vianet 端點營運的 Azure,請參閱本文。) 下表顯示語音服務供應項目的可能值 (DNS 名稱的第二個元素):

DNS 名稱值 語音服務供應項目
commands 自訂命令
convai 會議文字記錄
s2s 語音翻譯
stt 語音轉換文字
tts 文字轉換語音
voice 自訂語音

因此,先前的範例 (westeurope.stt.speech.microsoft.com) 代表西歐的語音轉換文字端點。

啟用私人端點的端點會透過特殊 Proxy 與語音服務進行通訊。 因此,您必須變更端點連線 URL

「標準」端點 URL 看起來像這樣:

{region}.{speech service offering}.speech.microsoft.com/{URL path}

私人端點 URL 看起來像這樣:

{your custom name}.cognitiveservices.azure.com/{speech service offering}/{URL path}

範例 1. 應用程式會使用下列 URL 進行通訊 (在西歐會使用美式英文的基本模型執行語音辨識)。

wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US

若要在啟用私人端點的案例中使用它,當語音資源的自訂網域名稱為 my-private-link-speech.cognitiveservices.azure.com 時,您必須修改 URL,如下所示:

wss://my-private-link-speech.cognitiveservices.azure.com/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US

請注意詳細資訊:

  • 主機名稱 westeurope.stt.speech.microsoft.com 會取代為自訂網域主機名稱 my-private-link-speech.cognitiveservices.azure.com
  • 原始 DNS 名稱的第二個元素 (stt) 會成為 URL 路徑的第一個元素,並位於原始路徑之前。 如此一來,原始 URL /speech/recognition/conversation/cognitiveservices/v1?language=en-US 就會變成 /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US

範例 2. 應用程式會使用下列 URL 在西歐合成語音:

wss://westeurope.tts.speech.microsoft.com/cognitiveservices/websocket/v1

下列對等 URL 會使用私人端點,其中語音資源的自訂網域名稱為 my-private-link-speech.cognitiveservices.azure.com

wss://my-private-link-speech.cognitiveservices.azure.com/tts/cognitiveservices/websocket/v1

「範例 1」中的準則同樣適用,但這次的關鍵元素為 tts

修改應用程式

遵循下列步驟修改程式碼:

  1. 判斷應用程式端點 URL:

    • 開啟應用程式的記錄,並將其執行至記錄活動。
    • 在記錄檔中,搜尋 SPEECH-ConnectionUrl。 在相符的行中,value 參數包含應用程式用來存取語音服務的完整 URL。

    範例:

    (114917): 41ms SPX_DBG_TRACE_VERBOSE:  property_bag_impl.cpp:138 ISpxPropertyBagImpl::LogPropertyAndValue: this=0x0000028FE4809D78; name='SPEECH-ConnectionUrl'; value='wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?traffictype=spx&language=en-US'
    

    因此,應用程式在此範例中使用的 URL 為:

    wss://westeurope.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US
    
  2. 使用完整端點 URL 建立 SpeechConfig 執行個體:

    1. 修改您剛剛決定的端點,如先前的 建構端點 URL 一節中所述。

    2. 修改您建立 SpeechConfig 執行個體的方式。 您的應用程式很可能是使用類似如下的內容:

      var config = SpeechConfig.FromSubscription(speechKey, azureRegion);
      

      由於我們先前各節所述的主機名和 URL 已改變,此範例不適用於已啟用私人端點的語音資源。 若您嘗試使用啟用私人端點資源的金鑰來執行現有的應用程式,而不進行任何修改,會遇到 (401) 驗證錯誤。

      如要使其正常運作,請修改將 SpeechConfig 類別具現化的方式,並使用「從端點」/「使用端點」初始化。 假設我們已定義下列兩個變數:

      • speechKey 包含啟用私人端點語音資源的金鑰。
      • endPoint 包含經過完整修改的端點 URL (使用對應程式設計語言所需的型別)。 在我們的範例中,此變數應包含:
        wss://my-private-link-speech.cognitiveservices.azure.com/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US
        

      建立 SpeechConfig 執行個體:

      var config = SpeechConfig.FromEndpoint(endPoint, speechKey);
      
      auto config = SpeechConfig::FromEndpoint(endPoint, speechKey);
      
      SpeechConfig config = SpeechConfig.fromEndpoint(endPoint, speechKey);
      
      import azure.cognitiveservices.speech as speechsdk
      config = speechsdk.SpeechConfig(endpoint=endPoint, subscription=speechKey)
      
      SPXSpeechConfiguration *config = [[SPXSpeechConfiguration alloc] initWithEndpoint:endPoint subscription:speechKey];
      
      import * as sdk from "microsoft.cognitiveservices.speech.sdk";
      config: sdk.SpeechConfig = sdk.SpeechConfig.fromEndpoint(new URL(endPoint), speechKey);
      

提示

端點 URI 中指定的查詢參數不會變更,即使這些參數是由其他 API 所設定亦同。 例如,若識別語言在 URI 中定義為查詢參數 language=en-US,且亦透過對應的屬性設定為 ru-RU,則系統會使用 URI 中的語言設定。 有效的語言就是 en-US

端點 URI 中設定的參數一律優先。 其他 API 只能覆寫端點 URI 中未指定的參數。

修改之後,您的應用程式應會使用啟用私人端點的語音資源。 我們正在努力針對私人端點案例,提供更順暢的支援服務。

使用 Speech Studio

Speech Studio 是一個入口網站,提供工具讓您在應用程式中建立和整合 Azure AI 語音服務。 在 Speech Studio 專案中工作時會替您建立網路連線和透過 API 呼叫對應的語音資源。 使用私人端點虛擬網路服務端點和其他網路安全性選項時,可能限制 Speech Studio 功能的可用性。 使用 自訂語音自訂神經語音音訊內容建立 等功能時,您通常會使用 Speech Studio。

從虛擬網路連線到 Speech Studio 入口網站

若要從 Azure 虛擬網路內的虛擬機器使用 Speech Studio,您必須允許此虛擬網路向外連線到一組需要的服務標籤。 請參閱此處的詳細資料。

存取語音資源端點「不」等於存取 Speech Studio 入口網站。 不支援透過私人或虛擬網路服務端點存取 Speech Studio 入口網站。

使用 Speech Studio 專案

本節說明如何針對語音資源的不同網路安全性選項,使用不同類型的 Speech Studio 專案。 需要建立從網頁瀏覽器到 Speech Studio 的連線。 語音資源網路安全性設定是在 Azure 入口網站中設定。

  1. 前往 Azure 入口網站並登入 Azure 帳戶。
  2. 選取語音資源。
  3. 在左窗格的 [資源管理] 群組中,選取 [網路]>[防火牆和虛擬網路]
  4. 選取 [所有網路]、[選取的網路和私人端點] 或 [已停用] 其中一個選項。

自訂語音、自定義語音和音訊內容建立

下表說明每個語音資源網路>防火牆和虛擬網路安全性設定的自定義語音/自定義語音/音訊內容建立項目輔助功能。

注意

如果您透過 [網路]>[私人端點連線] 索引標籤指定只允許私人端點,則您無法透過 Speech Studio 來使用語音資源。 您仍然可以在 Speech Studio 外部使用語音資源。

語音資源網路安全性設定 Speech Studio 專案可存取性
所有網路 無限制
選取的網路與私人端點 可從允許的公用 IP 位址存取
停用 無法存取

如果您選取 [選取的網路和私人端點],則看到具有 [虛擬網路] 和 [防火牆] 存取設定選項的索引標籤。 在 [防火牆] 區段中,您至少必須允許一個公用 IP 位址,並使用此位址讓瀏覽器與 Speech Studio 連線。

如果您只允許透過虛擬網路來存取,則實際上您不允許透過 Speech Studio 存取語音資源。 您仍然可以在 Speech Studio 外部使用語音資源。

若要使用自訂語音,但不放寬生產語音資源的網路存取限制,請考慮採取下列其中一個因應措施。

  • 建立另一個可在公用網路上使用的語音資源,作為開發用途。 在 Speech Studio 中備妥開發資源上的自訂模型,然後將模型複製到生產資源。 請參閱語音轉換文字 REST API Models_CopyTo REST 要求。
  • 您可以選擇不透過 Speech Studio 來使用自訂語音。 針對所有自訂語音作業使用語音轉換文字 REST API

若要在不放寬生產語音資源的網路存取限制的情況下使用自定義語音,請考慮針對所有自定義語音作業使用 自定義語音 REST API

調整應用程式以使用不具私人端點的語音資源

在本文中,我們已數次說明,針對語音資源啟自訂網域是無法復原的。 相較於使用 區域端點名稱 的資源,這類資源會使用不同的方式進行語音服務通訊。

本節說明如何使用具有自訂網域名稱,但沒有任何私人端點搭配語音服務 REST API 和 語音 SDK 的語音資源。 這可能是在私人端點案例中使用過一次的資源,但已刪除其私人端點。

DNS 組態

針對啟用私人端點的語音資源自訂網域 DNS 名稱,您應該還記得如何從公用網路進行解析。 在此情況下,已解析的 IP 位址會指向虛擬網路的 Proxy 端點。 該端點用於將網路流量分派至啟用私人端點的 Azure AI 服務資源。

不過,在移除所有資源私人端點時 (或在啟用自訂網域名稱後),系統會重新佈建語音資源的 CNAME 記錄。 它現在會指向對應 Azure AI 服務區域端點的 IP 位址。

因此,nslookup 命令的輸出看起來像這樣:

C:\>nslookup my-private-link-speech.cognitiveservices.azure.com
Server:  UnKnown
Address:  fe80::1

Non-authoritative answer:
Name:    apimgmthskquihpkz6d90kmhvnabrx3ms3pdubscpdfk1tsx3a.cloudapp.net
Address:  13.93.122.1
Aliases:  my-private-link-speech.cognitiveservices.azure.com
          westeurope.api.cognitive.microsoft.com
          cognitiveweprod.trafficmanager.net
          cognitiveweprod.azure-api.net
          apimgmttmdjylckcx6clmh2isu2wr38uqzm63s8n4ub2y3e6xs.trafficmanager.net
          cognitiveweprod-westeurope-01.regional.azure-api.net

將該命令輸出與本節輸出進行比較。

具有自訂網域名稱且無私人端點的語音資源:使用 REST API

語音轉換文字 REST API

語音轉換文字 REST API 使用方式完全等同於啟用私人端點的語音資源的情況。

簡短音訊的語音轉換文字 REST API和文字轉換語音 REST API

在此情況下,簡短音訊的語音轉換文字 REST API 和文字轉換語音 REST API 在一般使用方式上沒有任何差異,但有一個例外狀況。 (請參閱下列附註。) 您應該依適用於簡短音訊的語音轉換文字 REST API文字轉換語音 REST API 文件所述來使用這兩個 API。

注意

當您在自訂網域案例中使用簡短音訊的語音轉換文字 REST API 以及文字轉換語音 REST API 時,請使用透過 Ocp-Apim-Subscription-Key 標頭傳遞的語音資源金鑰。 (參閱適用於簡短音訊語音轉換文字 REST API文字轉換語音 REST API 的詳細資訊)

只有在您於語音資源的 [網路] 區段中開啟 [所有網路] 存取選項時,方可使用授權權杖並透過 Authorization 標頭將其傳遞至特殊端點。 在其他情況下,當您嘗試取得授權權杖時會遇到 ForbiddenBadRequest 錯誤。

具有自訂網域名稱且無私人端點的語音資源:使用 Speech SDK

將 Speech SDK 搭配使用無私人端點的啟用自訂網域語音資源,等同於在 Speech SDK 文件中所述的一般案例。

若您已修改程式碼來搭配使用啟用私人端點的語音資源,請考慮下列事項。

在〈啟用私人端點的語音資源〉一節中,我們說明了如何判斷端點 URL、修改端點 URL,以及透過 SpeechConfig 類別執行個體的「從端點」/「使用端點」初始化來進行工作。

不過,若您嘗試在移除所有私人端點後執行相同的應用程式 (系統會需要一些時間重新佈建對應的 DNS 記錄),則會遭遇 (404)的內部服務錯誤。 原因是 DNS 記錄 現在指向區域 Azure AI 服務端點,而不是虛擬網路 Proxy,而且找不到類似 /stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US 的 URL 路徑。

您必須以下列程式碼樣式將應用程式復原至 SpeechConfig 的標準具現化:

var config = SpeechConfig.FromSubscription(speechKey, azureRegion);

同時使用私人端點和虛擬網路服務端點

您可以使用私人端點虛擬網路服務端點,同時存取相同的語音資源。 若要啟用此同時使用動作,您必須在 Azure 入口網站語音資源的網路設定中,使用 [選取的網路與私人端點] 選項。 此案例不支援其他選項。

定價

如需價格詳細資料,請參閱 Azure Private Link 價格

深入了解