快速入門:將文字轉換成語音
參考文件 | 套件 (NuGet) | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
語音 SDK 可作為 實作 .NET Standard 2.0 的 NuGet 套件 。 稍後在本指南中安裝語音 SDK。 如需任何需求,請參閱 安裝語音 SDK。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟來建立主控台應用程式並安裝語音 SDK。
在您想要新項目的資料夾中開啟命令提示字元視窗。 執行此命令以使用 .NET CLI 建立主控台應用程式。
dotnet new console
命令會在項目目錄中建立 Program.cs 檔案。
使用 .NET CLI 在您的新專案中安裝語音 SDK。
dotnet add package Microsoft.CognitiveServices.Speech
將 Program.cs 的內容取代為下列程式碼。
using System; using System.IO; using System.Threading.Tasks; using Microsoft.CognitiveServices.Speech; using Microsoft.CognitiveServices.Speech.Audio; class Program { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" static string speechKey = Environment.GetEnvironmentVariable("SPEECH_KEY"); static string speechRegion = Environment.GetEnvironmentVariable("SPEECH_REGION"); static void OutputSpeechSynthesisResult(SpeechSynthesisResult speechSynthesisResult, string text) { switch (speechSynthesisResult.Reason) { case ResultReason.SynthesizingAudioCompleted: Console.WriteLine($"Speech synthesized for text: [{text}]"); break; case ResultReason.Canceled: var cancellation = SpeechSynthesisCancellationDetails.FromResult(speechSynthesisResult); Console.WriteLine($"CANCELED: Reason={cancellation.Reason}"); if (cancellation.Reason == CancellationReason.Error) { Console.WriteLine($"CANCELED: ErrorCode={cancellation.ErrorCode}"); Console.WriteLine($"CANCELED: ErrorDetails=[{cancellation.ErrorDetails}]"); Console.WriteLine($"CANCELED: Did you set the speech resource key and region values?"); } break; default: break; } } async static Task Main(string[] args) { var speechConfig = SpeechConfig.FromSubscription(speechKey, speechRegion); // The neural multilingual voice can speak different languages based on the input text. speechConfig.SpeechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; using (var speechSynthesizer = new SpeechSynthesizer(speechConfig)) { // Get text from the console and synthesize to the default speaker. Console.WriteLine("Enter some text that you want to speak >"); string text = Console.ReadLine(); var speechSynthesisResult = await speechSynthesizer.SpeakTextAsync(text); OutputSpeechSynthesisResult(speechSynthesisResult, text); } Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } }
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。執行新的主控台應用程式,以啟動預設說話者的語音合成。
dotnet run
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。輸入一些您想要說話的文字。 例如,輸入 我很興奮,嘗試文字到語音轉換。 選取 Enter 鍵以聆聽合成語音。
Enter some text that you want to speak > I'm excited to try text to speech
備註
更多語音合成選項
本快速入門會使用 SpeakTextAsync
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (NuGet) | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
語音 SDK 可作為 實作 .NET Standard 2.0 的 NuGet 套件 。 稍後在本指南中安裝語音 SDK。 如需任何需求,請參閱 安裝語音 SDK。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟來建立主控台應用程式並安裝語音 SDK。
在名為
SpeechSynthesis
的Visual Studio Community中建立 C++ 控制台專案。使用下列程式代碼取代SpeechSynthesis.cpp的內容:
#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; std::string GetEnvironmentVariable(const char* name); int main() { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" auto speechKey = GetEnvironmentVariable("SPEECH_KEY"); auto speechRegion = GetEnvironmentVariable("SPEECH_REGION"); if ((size(speechKey) == 0) || (size(speechRegion) == 0)) { std::cout << "Please set both SPEECH_KEY and SPEECH_REGION environment variables." << std::endl; return -1; } auto speechConfig = SpeechConfig::FromSubscription(speechKey, speechRegion); // The neural multilingual voice can speak different languages based on the input text. speechConfig->SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); auto speechSynthesizer = SpeechSynthesizer::FromConfig(speechConfig); // Get text from the console and synthesize to the default speaker. std::cout << "Enter some text that you want to speak >" << std::endl; std::string text; getline(std::cin, text); auto result = speechSynthesizer->SpeakTextAsync(text).get(); // Checks result. if (result->Reason == ResultReason::SynthesizingAudioCompleted) { std::cout << "Speech synthesized to speaker for text [" << text << "]" << std::endl; } else if (result->Reason == ResultReason::Canceled) { auto cancellation = SpeechSynthesisCancellationDetails::FromResult(result); std::cout << "CANCELED: Reason=" << (int)cancellation->Reason << std::endl; if (cancellation->Reason == CancellationReason::Error) { std::cout << "CANCELED: ErrorCode=" << (int)cancellation->ErrorCode << std::endl; std::cout << "CANCELED: ErrorDetails=[" << cancellation->ErrorDetails << "]" << std::endl; std::cout << "CANCELED: Did you set the speech resource key and region values?" << std::endl; } } std::cout << "Press enter to exit..." << std::endl; std::cin.get(); } std::string GetEnvironmentVariable(const char* name) { #if defined(_MSC_VER) size_t requiredSize = 0; (void)getenv_s(&requiredSize, nullptr, 0, name); if (requiredSize == 0) { return ""; } auto buffer = std::make_unique<char[]>(requiredSize); (void)getenv_s(&requiredSize, buffer.get(), requiredSize, name); return buffer.get(); #else auto value = getenv(name); return value ? value : ""; #endif }
選取 [工具>Nuget 封裝管理員> 封裝管理員 控制台]。 在 封裝管理員 主控台中,執行此命令:
Install-Package Microsoft.CognitiveServices.Speech
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。建置並執行新的控制台應用程式 ,以啟動默認說話者的語音合成。
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。輸入一些您想要說話的文字。 例如,輸入 我很興奮,嘗試文字到語音轉換。 選取 Enter 鍵以聆聽合成語音。
Enter some text that you want to speak > I'm excited to try text to speech
備註
更多語音合成選項
本快速入門會使用 SpeakTextAsync
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (Go) | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
安裝適用於 Go 的語音 SDK。 如需需求和指示,請參閱 安裝語音 SDK。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟來建立 Go 模組。
在您想要新項目的資料夾中開啟命令提示字元視窗。 建立名為 speech-synthesis.go 的新檔案。
將下列程式代碼複製到 speech-synthesis.go:
package main import ( "bufio" "fmt" "os" "strings" "time" "github.com/Microsoft/cognitive-services-speech-sdk-go/audio" "github.com/Microsoft/cognitive-services-speech-sdk-go/common" "github.com/Microsoft/cognitive-services-speech-sdk-go/speech" ) func synthesizeStartedHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Println("Synthesis started.") } func synthesizingHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Printf("Synthesizing, audio chunk size %d.\n", len(event.Result.AudioData)) } func synthesizedHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Printf("Synthesized, audio length %d.\n", len(event.Result.AudioData)) } func cancelledHandler(event speech.SpeechSynthesisEventArgs) { defer event.Close() fmt.Println("Received a cancellation.") } func main() { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speechKey := os.Getenv("SPEECH_KEY") speechRegion := os.Getenv("SPEECH_REGION") audioConfig, err := audio.NewAudioConfigFromDefaultSpeakerOutput() if err != nil { fmt.Println("Got an error: ", err) return } defer audioConfig.Close() speechConfig, err := speech.NewSpeechConfigFromSubscription(speechKey, speechRegion) if err != nil { fmt.Println("Got an error: ", err) return } defer speechConfig.Close() speechConfig.SetSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural") speechSynthesizer, err := speech.NewSpeechSynthesizerFromConfig(speechConfig, audioConfig) if err != nil { fmt.Println("Got an error: ", err) return } defer speechSynthesizer.Close() speechSynthesizer.SynthesisStarted(synthesizeStartedHandler) speechSynthesizer.Synthesizing(synthesizingHandler) speechSynthesizer.SynthesisCompleted(synthesizedHandler) speechSynthesizer.SynthesisCanceled(cancelledHandler) for { fmt.Printf("Enter some text that you want to speak, or enter empty text to exit.\n> ") text, _ := bufio.NewReader(os.Stdin).ReadString('\n') text = strings.TrimSuffix(text, "\n") if len(text) == 0 { break } task := speechSynthesizer.SpeakTextAsync(text) var outcome speech.SpeechSynthesisOutcome select { case outcome = <-task: case <-time.After(60 * time.Second): fmt.Println("Timed out") return } defer outcome.Close() if outcome.Error != nil { fmt.Println("Got an error: ", outcome.Error) return } if outcome.Result.Reason == common.SynthesizingAudioCompleted { fmt.Printf("Speech synthesized to speaker for text [%s].\n", text) } else { cancellation, _ := speech.NewCancellationDetailsFromSpeechSynthesisResult(outcome.Result) fmt.Printf("CANCELED: Reason=%d.\n", cancellation.Reason) if cancellation.Reason == common.Error { fmt.Printf("CANCELED: ErrorCode=%d\nCANCELED: ErrorDetails=[%s]\nCANCELED: Did you set the speech resource key and region values?\n", cancellation.ErrorCode, cancellation.ErrorDetails) } } } }
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。執行下列命令來建立 go.mod 檔案,以連結至 GitHub 上裝載的元件:
go mod init speech-synthesis go get github.com/Microsoft/cognitive-services-speech-sdk-go
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。現在建置並執行程式代碼:
go build go run speech-synthesis
備註
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
若要設定環境, 請安裝語音 SDK。 本快速入門中的範例適用於 Java 運行時間。
安裝 Apache Maven。 然後執行
mvn -v
以確認安裝成功。在專案的根目錄中建立 pom.xml 檔案,並將下列程式代碼複製到其中:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.microsoft.cognitiveservices.speech.samples</groupId> <artifactId>quickstart-eclipse</artifactId> <version>1.0.0-SNAPSHOT</version> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.microsoft.cognitiveservices.speech</groupId> <artifactId>client-sdk</artifactId> <version>1.38.0</version> </dependency> </dependencies> </project>
安裝語音 SDK 和相依性。
mvn clean dependency:copy-dependencies
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟來建立語音辨識的主控台應用程式。
在相同的專案根目錄中建立名為 SpeechSynthesis.java 的檔案。
將下列程式代碼複製到 SpeechSynthesis.java:
import com.microsoft.cognitiveservices.speech.*; import com.microsoft.cognitiveservices.speech.audio.*; import java.util.Scanner; import java.util.concurrent.ExecutionException; public class SpeechSynthesis { // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" private static String speechKey = System.getenv("SPEECH_KEY"); private static String speechRegion = System.getenv("SPEECH_REGION"); public static void main(String[] args) throws InterruptedException, ExecutionException { SpeechConfig speechConfig = SpeechConfig.fromSubscription(speechKey, speechRegion); speechConfig.setSpeechSynthesisVoiceName("en-US-AvaMultilingualNeural"); SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig); // Get text from the console and synthesize to the default speaker. System.out.println("Enter some text that you want to speak >"); String text = new Scanner(System.in).nextLine(); if (text.isEmpty()) { return; } SpeechSynthesisResult speechSynthesisResult = speechSynthesizer.SpeakTextAsync(text).get(); if (speechSynthesisResult.getReason() == ResultReason.SynthesizingAudioCompleted) { System.out.println("Speech synthesized to speaker for text [" + text + "]"); } else if (speechSynthesisResult.getReason() == ResultReason.Canceled) { SpeechSynthesisCancellationDetails cancellation = SpeechSynthesisCancellationDetails.fromResult(speechSynthesisResult); System.out.println("CANCELED: Reason=" + cancellation.getReason()); if (cancellation.getReason() == CancellationReason.Error) { System.out.println("CANCELED: ErrorCode=" + cancellation.getErrorCode()); System.out.println("CANCELED: ErrorDetails=" + cancellation.getErrorDetails()); System.out.println("CANCELED: Did you set the speech resource key and region values?"); } } System.exit(0); } }
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。執行主控台應用程式,以啟動預設說話者的語音合成。
javac SpeechSynthesis.java -cp ".;target\dependency\*" java -cp ".;target\dependency\*" SpeechSynthesis
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。輸入一些您想要說話的文字。 例如,輸入 我很興奮,嘗試文字到語音轉換。 選取 Enter 鍵以聆聽合成語音。
Enter some text that you want to speak > I'm excited to try text to speech
備註
更多語音合成選項
本快速入門會使用 SpeakTextAsync
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (npm) | GitHub 上的其他範例 | 程式庫原始程式碼
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
若要設定環境,請安裝適用於 JavaScript 的語音 SDK。 如果您只要安裝套件名稱,請執行 npm install microsoft-cognitiveservices-speech-sdk
。 如需引導式安裝指示,請參閱 安裝語音 SDK。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至檔案輸出
請遵循下列步驟來建立語音合成Node.js控制台應用程式。
開啟您要新專案的主控台視窗,並建立名為 SpeechSynthesis.js 的檔案。
安裝適用於 JavaScript 的語音 SDK:
npm install microsoft-cognitiveservices-speech-sdk
將下列程式代碼複製到 SpeechSynthesis.js:
(function() { "use strict"; var sdk = require("microsoft-cognitiveservices-speech-sdk"); var readline = require("readline"); var audioFile = "YourAudioFile.wav"; // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" const speechConfig = sdk.SpeechConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION); const audioConfig = sdk.AudioConfig.fromAudioFileOutput(audioFile); // The language of the voice that speaks. speechConfig.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; // Create the speech synthesizer. var synthesizer = new sdk.SpeechSynthesizer(speechConfig, audioConfig); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question("Enter some text that you want to speak >\n> ", function (text) { rl.close(); // Start the synthesizer and wait for a result. synthesizer.speakTextAsync(text, function (result) { if (result.reason === sdk.ResultReason.SynthesizingAudioCompleted) { console.log("synthesis finished."); } else { console.error("Speech synthesis canceled, " + result.errorDetails + "\nDid you set the speech resource key and region values?"); } synthesizer.close(); synthesizer = null; }, function (err) { console.trace("err - " + err); synthesizer.close(); synthesizer = null; }); console.log("Now synthesizing to: " + audioFile); }); }());
在 SpeechSynthesis.js 中,您可以選擇性地將YourAudioFile.wav重新命名為另一個輸出檔名。
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。執行主控台應用程式以啟動檔案的語音合成:
node SpeechSynthesis.js
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。提供的文字應該位於音訊檔案中:
Enter some text that you want to speak > > I'm excited to try text to speech Now synthesizing to: YourAudioFile.wav synthesis finished.
備註
更多語音合成選項
本快速入門會使用 SpeakTextAsync
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (下載) | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
適用於 Objective-C 的語音 SDK 會以架構套件組合的形式散發。 此架構同時支援 iOS 和 macOS 上的 Objective-C 和 Swift。
語音 SDK 可用於 Xcode 專案中做為 CocoaPod,或 直接 下載並手動連結。 本指南使用CocoaPod。 安裝CocoaPod相依性管理員,如其 安裝指示中所述。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟,在macOS應用程式中合成語音。
複製 Azure-Samples/cognitive-services-speech-sdk 存放庫,以使用語音 SDK 範例專案,在 macOS 上使用 Objective-C 取得合成音訊。 存放庫也有 iOS 範例。
在終端機中開啟下載的範例應用程式 (
helloworld
) 目錄。執行
pod install
命令。 此命令會產生 Xcodehelloworld.xcworkspace
工作區,其中包含範例應用程式和語音 SDK 作為相依性。在
helloworld.xcworkspace
Xcode 中開啟工作區。開啟名為 AppDelegate.m 的檔案,並找出 方法,
buttonPressed
如下所示。- (void)buttonPressed:(NSButton *)button { // Creates an instance of a speech config with specified subscription key and service region. NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"]; NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"]; SPXSpeechConfiguration *speechConfig = [[SPXSpeechConfiguration alloc] initWithSubscription:speechKey region:serviceRegion]; speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural"; SPXSpeechSynthesizer *speechSynthesizer = [[SPXSpeechSynthesizer alloc] init:speechConfig]; NSLog(@"Start synthesizing..."); SPXSpeechSynthesisResult *speechResult = [speechSynthesizer speakText:[self.textField stringValue]]; // Checks result. if (SPXResultReason_Canceled == speechResult.reason) { SPXSpeechSynthesisCancellationDetails *details = [[SPXSpeechSynthesisCancellationDetails alloc] initFromCanceledSynthesisResult:speechResult]; NSLog(@"Speech synthesis was canceled: %@. Did you set the speech resource key and region values?", details.errorDetails); } else if (SPXResultReason_SynthesizingAudioCompleted == speechResult.reason) { NSLog(@"Speech synthesis was completed"); } else { NSLog(@"There was an error."); } }
在 AppDelegate.m 中,使用 您先前為語音資源密鑰和區域設定 的環境變數。
NSString *speechKey = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_KEY"]; NSString *serviceRegion = [[[NSProcessInfo processInfo] environment] objectForKey:@"SPEECH_REGION"];
選擇性地在 AppDelegate.m 中包含語音合成語音名稱,如下所示:
speechConfig.speechSynthesisVoiceName = @"en-US-AvaMultilingualNeural";
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。若要顯示偵錯輸出,請選取 [檢視>偵錯區域>啟動主控台]。
若要建置並執行範例程式代碼,請從功能表中選取 [產品>執行],或選取 [播放] 按鈕。
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。
輸入一些文字並選取應用程式中的按鈕之後,您應該會聽到已播放的合成音訊。
備註
更多語音合成選項
本快速入門會使用 SpeakText
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (下載) | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
適用於 Swift 的語音 SDK 會以架構套件組合的形式散發。 此架構同時支援 iOS 和 macOS 上的 Objective-C 和 Swift。
語音 SDK 可用於 Xcode 專案中做為 CocoaPod,或 直接 下載並手動連結。 本指南使用CocoaPod。 安裝CocoaPod相依性管理員,如其 安裝指示中所述。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟,在macOS應用程式中合成語音。
複製 Azure-Samples/cognitive-services-speech-sdk 存放庫,以使用語音 SDK 範例專案在 macOS 上取得 Swift 中的合成音訊。 存放庫也有 iOS 範例。
流覽至終端機中下載範例應用程式 (
helloworld
) 的目錄。執行
pod install
命令。 此命令會產生 Xcodehelloworld.xcworkspace
工作區,其中包含範例應用程式和語音 SDK 作為相依性。在
helloworld.xcworkspace
Xcode 中開啟工作區。開啟名為 AppDelegate.swift 的
applicationDidFinishLaunching
檔案,並找出 和synthesize
方法,如下所示。import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate { var textField: NSTextField! var synthesisButton: NSButton! var inputText: String! var sub: String! var region: String! @IBOutlet weak var window: NSWindow! func applicationDidFinishLaunching(_ aNotification: Notification) { print("loading") // load subscription information sub = ProcessInfo.processInfo.environment["SPEECH_KEY"] region = ProcessInfo.processInfo.environment["SPEECH_REGION"] inputText = "" textField = NSTextField(frame: NSRect(x: 100, y: 200, width: 200, height: 50)) textField.textColor = NSColor.black textField.lineBreakMode = .byWordWrapping textField.placeholderString = "Type something to synthesize." textField.delegate = self self.window.contentView?.addSubview(textField) synthesisButton = NSButton(frame: NSRect(x: 100, y: 100, width: 200, height: 30)) synthesisButton.title = "Synthesize" synthesisButton.target = self synthesisButton.action = #selector(synthesisButtonClicked) self.window.contentView?.addSubview(synthesisButton) } @objc func synthesisButtonClicked() { DispatchQueue.global(qos: .userInitiated).async { self.synthesize() } } func synthesize() { var speechConfig: SPXSpeechConfiguration? do { try speechConfig = SPXSpeechConfiguration(subscription: sub, region: region) } catch { print("error \(error) happened") speechConfig = nil } speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural"; let synthesizer = try! SPXSpeechSynthesizer(speechConfig!) let result = try! synthesizer.speakText(inputText) if result.reason == SPXResultReason.canceled { let cancellationDetails = try! SPXSpeechSynthesisCancellationDetails(fromCanceledSynthesisResult: result) print("cancelled, error code: \(cancellationDetails.errorCode) detail: \(cancellationDetails.errorDetails!) ") print("Did you set the speech resource key and region values?"); return } } func controlTextDidChange(_ obj: Notification) { let textFiled = obj.object as! NSTextField inputText = textFiled.stringValue } }
在 AppDelegate.m 中,使用 您先前為語音資源密鑰和區域設定 的環境變數。
sub = ProcessInfo.processInfo.environment["SPEECH_KEY"] region = ProcessInfo.processInfo.environment["SPEECH_REGION"]
選擇性地在 AppDelegate.m 中包含語音合成語音名稱,如下所示:
speechConfig?.speechSynthesisVoiceName = "en-US-AvaMultilingualNeural";
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。若要顯示偵錯輸出,請選取 [檢視>偵錯區域>啟動主控台]。
若要建置並執行範例程式代碼,請從功能表中選取 [產品>執行],或選取 [播放] 按鈕。
重要
請確定您已設定 SPEECH_KEY
和 SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。
輸入一些文字並選取應用程式中的按鈕之後,您應該會聽到已播放的合成音訊。
備註
更多語音合成選項
本快速入門會使用 SpeakText
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (PyPi) | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
適用於 Python 的語音 SDK 可作為 Python 套件索引 (PyPI) 模組。 適用於 Python 的語音 SDK 與 Windows、Linux 和 macOS 相容。
- 在 Windows 上,為您的平臺安裝適用於 Visual Studio 2015、2017、2019 和 2022 的 Microsoft C++ 可轉散發套件。 安裝此套件可能需要重新啟動。
- 在 Linux 上,您必須使用 x64 目標架構。
安裝 Python 從 3.7 或更新的版本。 如需任何需求,請參閱 安裝語音 SDK。
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至喇叭輸出
請遵循下列步驟來建立主控台應用程式。
在您想要新項目的資料夾中開啟命令提示字元視窗。 建立名為 speech_synthesis.py 的檔案。
執行此指令以安裝語音 SDK:
pip install azure-cognitiveservices-speech
將下列程式代碼複製到 speech_synthesis.py:
import os import azure.cognitiveservices.speech as speechsdk # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True) # The neural multilingual voice can speak different languages based on the input text. speech_config.speech_synthesis_voice_name='en-US-AvaMultilingualNeural' speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config) # Get text from the console and synthesize to the default speaker. print("Enter some text that you want to speak >") text = input() speech_synthesis_result = speech_synthesizer.speak_text_async(text).get() if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted: print("Speech synthesized for text [{}]".format(text)) elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = speech_synthesis_result.cancellation_details print("Speech synthesis canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: if cancellation_details.error_details: print("Error details: {}".format(cancellation_details.error_details)) print("Did you set the speech resource key and region values?")
若要變更語音合成語言,請以另一個支援的語音取代
en-US-AvaMultilingualNeural
。所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定
es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。執行新的主控台應用程式,以啟動預設說話者的語音合成。
python speech_synthesis.py
重要
請確定您已設定
SPEECH_KEY
和SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。輸入一些您想要說話的文字。 例如,輸入 我很興奮,嘗試文字到語音轉換。 選取 Enter 鍵以聆聽合成語音。
Enter some text that you want to speak > I'm excited to try text to speech
備註
更多語音合成選項
本快速入門會使用 speak_text_async
作業來合成您輸入的簡短文字區塊。 您也可以使用檔案中的長格式文字,並更精細地控制語音樣式、音調和其他設定。
- 請參閱如何合成語音和語音合成標記語言 (SSML) 概觀,以取得檔案的語音合成相關信息,以及更精細地控制語音樣式、音調和其他設定。
- 如需合成長格式文字到語音轉換的資訊,請參閱 文字到語音 轉換的批次合成 API。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
語音轉換文字 REST API 參考 | 適用於簡短音訊的語音轉換文字 REST API 參考 | GitHub 上的其他範例
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境變數
您的應用程式必須經過驗證,才能存取 Azure AI 服務資源。 針對生產環境,請使用安全的方式來儲存和存取您的認證。 例如,取得 語音資源的金鑰 之後,請將它寫入執行應用程式的本機計算機上新的環境變數。
提示
請勿將金鑰直接包含在您的程式代碼中,且絕不會公開發佈。 如需更多驗證選項,請參閱 Azure AI 服務安全性,例如 Azure 金鑰保存庫。
若要設定語音資源密鑰的環境變數,請開啟控制台視窗,並遵循作業系統和開發環境的指示。
- 若要設定
SPEECH_KEY
環境變數,請將your-key取代為資源的其中一個密鑰。 - 若要設定
SPEECH_REGION
環境變數,請將您的區域取代為您資源的其中一個區域。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前控制台中的環境變數,您可以使用 來設定環境變數 set
,而不是 setx
。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例之前重新啟動 Visual Studio。
合成至檔案
在命令提示字元中,執行下列 cURL 命令。 或者,您可以將output.mp3重新命名為另一個輸出檔名。
curl --location --request POST "https://%SPEECH_REGION%.tts.speech.microsoft.com/cognitiveservices/v1" ^
--header "Ocp-Apim-Subscription-Key: %SPEECH_KEY%" ^
--header "Content-Type: application/ssml+xml" ^
--header "X-Microsoft-OutputFormat: audio-16khz-128kbitrate-mono-mp3" ^
--header "User-Agent: curl" ^
--data-raw "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female' name='en-US-AvaMultilingualNeural'>my voice is my passport verify me</voice></speak>" --output output.mp3
重要
請確定您已設定 SPEECH_KEY
和 SPEECH_REGION
環境變數。 如果您未設定這些變數,範例會失敗並顯示錯誤訊息。
提供的文字應該輸出至名為 output.mp3 的音訊檔案。
若要變更語音合成語言,請以另一個支援的語音取代 en-US-AvaMultilingualNeural
。
所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定 es-ES-ElviraNeural
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。
如需詳細資訊,請參閱文字轉換語音 REST API。
備註
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
在本快速入門中,您會執行執行文字到語音合成的應用程式。
提示
您可以在 Speech Studio 語音資源庫中嘗試文字轉換語音,而不需要註冊或撰寫任何程式碼。
必要條件
設定環境
請遵循下列步驟,並參閱 語音 CLI 快速入門 ,以了解平臺的其他需求。
執行下列 .NET CLI 命令以安裝語音 CLI:
dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
執行下列命令來設定您的語音資源金鑰和區域。 以您的語音資源金鑰取代
SUBSCRIPTION-KEY
,而以您的語音資源區域取代REGION
。spx config @key --set SUBSCRIPTION-KEY spx config @region --set REGION
合成至喇叭輸出
執行下列命令,以將語音合成至預設喇叭輸出。 您可以修改要合成的語音和文字。
spx synthesize --text "I'm excited to try text to speech" --voice "en-US-AvaMultilingualNeural"
如果您未設定語音名稱,則為 en-US
說話的默認語音。
所有神經語音都是多語系的,並且以自己的語言和英語流暢。 例如,如果英文輸入文字是「我很高興嘗試文字到語音轉換」,而您設定 --voice "es-ES-ElviraNeural"
,則文字會以英文口音說出。 如果語音不會說出輸入文字的語言,語音服務就不會輸出合成的音訊。
執行此指令以取得更多語音合成選項的相關信息,例如檔案輸入和輸出:
spx help synthesize
備註
SSML 支援
您可以使用語音合成標記語言 (SSML) 來更精細地控制語音樣式、音調和其他設定。
在 Azure AI 語音中開啟 AI 文字到語音轉換語音
也支援 OpenAI 文字到語音轉換語音。 請參閱 Azure AI 語音 和 多語系語音中的 OpenAI 文字到語音轉換語音。 您可以將 取代 en-US-AvaMultilingualNeural
為支援的 OpenAI 語音名稱, 例如 en-US-FableMultilingualNeural
。
清除資源
您可以使用 Azure 入口網站 或 Azure 命令行介面 (CLI) 來移除您所建立的語音資源。
後續步驟
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: