快速入門:辨識和翻譯語音轉換文字
參考文件 | 套件 (NuGet) | GitHub 上的其他範例
在本快速入門中,您會執行應用程式,將某一種語言的語音翻譯成另一種語言的文字。
提示
試用 Azure AI 語音工具組,輕鬆地在 Visual Studio Code 上建置和執行範例。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- 在 Azure 入口網站上建立語音資源。
- 取得語音資源金鑰和區域。 部署語音資源之後,選取 [移至資源] 以檢視和管理索引鍵。
設定環境
語音 SDK 可以 NuGet 套件的形式取得,並且實作 .NET Standard 2.0。 您會在本指南的後續部分中安裝語音 SDK,但請先參閱 SDK 安裝指南,了解其他需求。
設定環境變數
您必須驗證應用程式以存取 Azure AI 服務。 本文說明如何使用環境變數來儲存您的認證。 然後,您可以從程式碼存取環境變數,以驗證您的應用程式。 針對實際執行環境,使用更安全的方法來儲存和存取您的認證。
重要
我們建議使用適用於 Azure 資源的受控識別搭配 Microsoft Entra ID 驗證,以避免使用在雲端執行的應用程式儲存認證。
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
若要設定語音資源索引鍵和區域的環境變數,請開啟主控台視窗,並遵循作業系統和開發環境的指示進行。
- 若要設定
SPEECH_KEY
環境變數,請以您其中一個資源金鑰取代 your-key。 - 若要設定
SPEECH_REGION
環境變數,請以您的其中一個資源區域取代 your-region。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前主控台的環境變數,您可以使用 set
(而不是 setx
) 來設定環境變數。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果正在使用 Visual Studio 作為編輯器,請您在執行範例前重新啟動 Visual Studio。
從麥克風翻譯語音
遵循下列步驟來建立新的主控台應用程式並安裝語音 SDK。
在您想要新專案的位置開啟命令提示字元,並使用 .NET CLI 建立主控台應用程式。 建議您在專案目錄中建立
Program.cs
檔案。dotnet new console
使用 .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; using Microsoft.CognitiveServices.Speech.Translation; 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 OutputSpeechRecognitionResult(TranslationRecognitionResult translationRecognitionResult) { switch (translationRecognitionResult.Reason) { case ResultReason.TranslatedSpeech: Console.WriteLine($"RECOGNIZED: Text={translationRecognitionResult.Text}"); foreach (var element in translationRecognitionResult.Translations) { Console.WriteLine($"TRANSLATED into '{element.Key}': {element.Value}"); } break; case ResultReason.NoMatch: Console.WriteLine($"NOMATCH: Speech could not be recognized."); break; case ResultReason.Canceled: var cancellation = CancellationDetails.FromResult(translationRecognitionResult); 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; } } async static Task Main(string[] args) { var speechTranslationConfig = SpeechTranslationConfig.FromSubscription(speechKey, speechRegion); speechTranslationConfig.SpeechRecognitionLanguage = "en-US"; speechTranslationConfig.AddTargetLanguage("it"); using var audioConfig = AudioConfig.FromDefaultMicrophoneInput(); using var translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig); Console.WriteLine("Speak into your microphone."); var translationRecognitionResult = await translationRecognizer.RecognizeOnceAsync(); OutputSpeechRecognitionResult(translationRecognitionResult); } }
若要變更語音辨識語言,請以另一種支援的語言取代
en-US
。 使用破折號 (-
) 分隔符號指定完整的地區設定。 例如,es-ES
代表西班牙文 (西班牙)。 如果您未指定語言,則預設語言為en-US
。 如需詳細了解如何識別所可能說出的多種語言之一,請參閱語言識別。若要變更翻譯目標語言,請以另一種支援的語言取代
it
。 除了少數例外,您只須指定地區設定破折號 (-
) 分隔符號前面的語言代碼即可。 例如,針對西班牙文 (西班牙) 使用es
而非es-ES
。 如果您未指定語言,則預設語言為en
。
執行新的主控台應用程式,以從麥克風啟動語音辨識:
dotnet run
出現提示時,請用麥克風說話。 您說出的內容應該會以目標語言輸出為翻譯文字:
Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale.
備註
您現在已完成快速入門,以下是一些其他考量:
- 此範例使用
RecognizeOnceAsync
作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識相關資訊 (包括多語系交談),請參閱如何翻譯語音。 - 若要從音訊檔案辨識語音,請使用
FromWavFileInput
,而不是FromDefaultMicrophoneInput
:using var audioConfig = AudioConfig.FromWavFileInput("YourAudioFile.wav");
- 針對 MP4 之類的壓縮音訊檔案,請安裝 GStreamer 並使用
PullAudioInputStream
或PushAudioInputStream
。 如需詳細資訊,請參閱如何使用壓縮的輸入音訊。
清除資源
您可以使用 Azure 入口網站或 Azure 命令列介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (NuGet) | GitHub 上的其他範例
在本快速入門中,您會執行應用程式,將某一種語言的語音翻譯成另一種語言的文字。
提示
試用 Azure AI 語音工具組,輕鬆地在 Visual Studio Code 上建置和執行範例。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- 在 Azure 入口網站上建立語音資源。
- 取得語音資源金鑰和區域。 部署語音資源之後,選取 [移至資源] 以檢視和管理索引鍵。
設定環境
語音 SDK 可以 NuGet 套件的形式取得,並且實作 .NET Standard 2.0。 您會在本指南的後續部分中安裝語音 SDK,但請先參閱 SDK 安裝指南,了解其他需求
設定環境變數
您必須驗證應用程式以存取 Azure AI 服務。 本文說明如何使用環境變數來儲存您的認證。 然後,您可以從程式碼存取環境變數,以驗證您的應用程式。 針對實際執行環境,使用更安全的方法來儲存和存取您的認證。
重要
我們建議使用適用於 Azure 資源的受控識別搭配 Microsoft Entra ID 驗證,以避免使用在雲端執行的應用程式儲存認證。
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
若要設定語音資源索引鍵和區域的環境變數,請開啟主控台視窗,並遵循作業系統和開發環境的指示進行。
- 若要設定
SPEECH_KEY
環境變數,請以您其中一個資源金鑰取代 your-key。 - 若要設定
SPEECH_REGION
環境變數,請以您的其中一個資源區域取代 your-region。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前主控台的環境變數,您可以使用 set
(而不是 setx
) 來設定環境變數。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果正在使用 Visual Studio 作為編輯器,請您在執行範例前重新啟動 Visual Studio。
從麥克風翻譯語音
遵循下列步驟來建立新的主控台應用程式並安裝語音 SDK。
在 Visual Studio Community 2022 中建立名為
SpeechTranslation
的新 C++ 主控台專案。使用 NuGet 套件管理員在新專案中安裝語音 SDK。
Install-Package Microsoft.CognitiveServices.Speech
以下列程式碼取代
SpeechTranslation.cpp
的內容:#include <iostream> #include <stdlib.h> #include <speechapi_cxx.h> using namespace Microsoft::CognitiveServices::Speech; using namespace Microsoft::CognitiveServices::Speech::Audio; using namespace Microsoft::CognitiveServices::Speech::Translation; 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"); auto speechTranslationConfig = SpeechTranslationConfig::FromSubscription(speechKey, speechRegion); speechTranslationConfig->SetSpeechRecognitionLanguage("en-US"); speechTranslationConfig->AddTargetLanguage("it"); auto audioConfig = AudioConfig::FromDefaultMicrophoneInput(); auto translationRecognizer = TranslationRecognizer::FromConfig(speechTranslationConfig, audioConfig); std::cout << "Speak into your microphone.\n"; auto result = translationRecognizer->RecognizeOnceAsync().get(); if (result->Reason == ResultReason::TranslatedSpeech) { std::cout << "RECOGNIZED: Text=" << result->Text << std::endl; for (auto pair : result->Translations) { auto language = pair.first; auto translation = pair.second; std::cout << "Translated into '" << language << "': " << translation << std::endl; } } else if (result->Reason == ResultReason::NoMatch) { std::cout << "NOMATCH: Speech could not be recognized." << std::endl; } else if (result->Reason == ResultReason::Canceled) { auto cancellation = CancellationDetails::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::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 }
若要變更語音辨識語言,請以另一種支援的語言取代
en-US
。 使用破折號 (-
) 分隔符號指定完整的地區設定。 例如,es-ES
代表西班牙文 (西班牙)。 如果您未指定語言,則預設語言為en-US
。 如需詳細了解如何識別所可能說出的多種語言之一,請參閱語言識別。若要變更翻譯目標語言,請以另一種支援的語言取代
it
。 除了少數例外,您只須指定地區設定破折號 (-
) 分隔符號前面的語言代碼即可。 例如,針對西班牙文 (西班牙) 使用es
而非es-ES
。 如果您未指定語言,則預設語言為en
。
組建並執行新的主控台應用程式,以從麥克風啟動語音辨識。
出現提示時,請用麥克風說話。 您說出的內容應該會以目標語言輸出為翻譯文字:
Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.
備註
您現在已完成快速入門,以下是一些其他考量:
- 此範例使用
RecognizeOnceAsync
作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識相關資訊 (包括多語系交談),請參閱如何翻譯語音。 - 若要從音訊檔案辨識語音,請使用
FromWavFileInput
,而不是FromDefaultMicrophoneInput
:auto audioInput = AudioConfig::FromWavFileInput("YourAudioFile.wav");
- 針對 MP4 之類的壓縮音訊檔案,請安裝 GStreamer 並使用
PullAudioInputStream
或PushAudioInputStream
。 如需詳細資訊,請參閱如何使用壓縮的輸入音訊。
清除資源
您可以使用 Azure 入口網站或 Azure 命令列介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (Go) | GitHub 上的其他範例
適用於 Go 的語音 SDK 不支援語音翻譯。 請選取其他程式設計語言,或本文開頭的 Go 參考和樣本連結。
在本快速入門中,您會執行應用程式,將某一種語言的語音翻譯成另一種語言的文字。
提示
試用 Azure AI 語音工具組,輕鬆地在 Visual Studio Code 上建置和執行範例。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- 在 Azure 入口網站上建立語音資源。
- 取得語音資源金鑰和區域。 部署語音資源之後,選取 [移至資源] 以檢視和管理索引鍵。
設定環境
您必須先安裝語音 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.42.0</version> </dependency> </dependencies> </project>
- 安裝語音 SDK 和相依性。
mvn clean dependency:copy-dependencies
設定環境變數
您必須驗證應用程式以存取 Azure AI 服務。 本文說明如何使用環境變數來儲存您的認證。 然後,您可以從程式碼存取環境變數,以驗證您的應用程式。 針對實際執行環境,使用更安全的方法來儲存和存取您的認證。
重要
我們建議使用適用於 Azure 資源的受控識別搭配 Microsoft Entra ID 驗證,以避免使用在雲端執行的應用程式儲存認證。
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
若要設定語音資源索引鍵和區域的環境變數,請開啟主控台視窗,並遵循作業系統和開發環境的指示進行。
- 若要設定
SPEECH_KEY
環境變數,請以您其中一個資源金鑰取代 your-key。 - 若要設定
SPEECH_REGION
環境變數,請以您的其中一個資源區域取代 your-region。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前主控台的環境變數,您可以使用 set
(而不是 setx
) 來設定環境變數。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果正在使用 Visual Studio 作為編輯器,請您在執行範例前重新啟動 Visual Studio。
從麥克風翻譯語音
遵循下列步驟來建立新的主控台應用程式進行語音辨識。
在相同的專案根目錄中建立名為
SpeechTranslation.java
的新檔案。將下列程式碼複製到
SpeechTranslation.java
:import com.microsoft.cognitiveservices.speech.*; import com.microsoft.cognitiveservices.speech.audio.AudioConfig; import com.microsoft.cognitiveservices.speech.translation.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.Map; public class SpeechTranslation { // 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 { SpeechTranslationConfig speechTranslationConfig = SpeechTranslationConfig.fromSubscription(speechKey, speechRegion); speechTranslationConfig.setSpeechRecognitionLanguage("en-US"); String[] toLanguages = { "it" }; for (String language : toLanguages) { speechTranslationConfig.addTargetLanguage(language); } recognizeFromMicrophone(speechTranslationConfig); } public static void recognizeFromMicrophone(SpeechTranslationConfig speechTranslationConfig) throws InterruptedException, ExecutionException { AudioConfig audioConfig = AudioConfig.fromDefaultMicrophoneInput(); TranslationRecognizer translationRecognizer = new TranslationRecognizer(speechTranslationConfig, audioConfig); System.out.println("Speak into your microphone."); Future<TranslationRecognitionResult> task = translationRecognizer.recognizeOnceAsync(); TranslationRecognitionResult translationRecognitionResult = task.get(); if (translationRecognitionResult.getReason() == ResultReason.TranslatedSpeech) { System.out.println("RECOGNIZED: Text=" + translationRecognitionResult.getText()); for (Map.Entry<String, String> pair : translationRecognitionResult.getTranslations().entrySet()) { System.out.printf("Translated into '%s': %s\n", pair.getKey(), pair.getValue()); } } else if (translationRecognitionResult.getReason() == ResultReason.NoMatch) { System.out.println("NOMATCH: Speech could not be recognized."); } else if (translationRecognitionResult.getReason() == ResultReason.Canceled) { CancellationDetails cancellation = CancellationDetails.fromResult(translationRecognitionResult); 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
。 使用破折號 (-
) 分隔符號指定完整的地區設定。 例如,es-ES
代表西班牙文 (西班牙)。 如果您未指定語言,則預設語言為en-US
。 如需詳細了解如何識別所可能說出的多種語言之一,請參閱語言識別。若要變更翻譯目標語言,請以另一種支援的語言取代
it
。 除了少數例外,您只須指定地區設定破折號 (-
) 分隔符號前面的語言代碼即可。 例如,針對西班牙文 (西班牙) 使用es
而非es-ES
。 如果您未指定語言,則預設語言為en
。
執行新的主控台應用程式,以從麥克風啟動語音辨識:
javac SpeechTranslation.java -cp ".;target\dependency\*"
java -cp ".;target\dependency\*" SpeechTranslation
出現提示時,請用麥克風說話。 您說出的內容應該會以目標語言輸出為翻譯文字:
Speak into your microphone.
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.
備註
您現在已完成快速入門,以下是一些其他考量:
- 此範例使用
RecognizeOnceAsync
作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識相關資訊 (包括多語系交談),請參閱如何翻譯語音。 - 若要從音訊檔案辨識語音,請使用
fromWavFileInput
,而不是fromDefaultMicrophoneInput
:AudioConfig audioConfig = AudioConfig.fromWavFileInput("YourAudioFile.wav");
- 針對 MP4 之類的壓縮音訊檔案,請安裝 GStreamer 並使用
PullAudioInputStream
或PushAudioInputStream
。 如需詳細資訊,請參閱如何使用壓縮的輸入音訊。
清除資源
您可以使用 Azure 入口網站或 Azure 命令列介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (npm) | GitHub 上的其他範例 | 程式庫原始程式碼
在本快速入門中,您會執行應用程式,將某一種語言的語音翻譯成另一種語言的文字。
提示
試用 Azure AI 語音工具組,輕鬆地在 Visual Studio Code 上建置和執行範例。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- 在 Azure 入口網站上建立語音資源。
- 取得語音資源金鑰和區域。 部署語音資源之後,選取 [移至資源] 以檢視和管理索引鍵。
設定環境
您必須先安裝適用於 JavaScript 的語音 SDK,才能執行動作。 如果您只想要安裝套件名稱,請執行 npm install microsoft-cognitiveservices-speech-sdk
。 如需引導式安裝指南,請參閱 SDK 安裝指南。
設定環境變數
您必須驗證應用程式以存取 Azure AI 服務。 本文說明如何使用環境變數來儲存您的認證。 然後,您可以從程式碼存取環境變數,以驗證您的應用程式。 針對實際執行環境,使用更安全的方法來儲存和存取您的認證。
重要
我們建議使用適用於 Azure 資源的受控識別搭配 Microsoft Entra ID 驗證,以避免使用在雲端執行的應用程式儲存認證。
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
若要設定語音資源索引鍵和區域的環境變數,請開啟主控台視窗,並遵循作業系統和開發環境的指示進行。
- 若要設定
SPEECH_KEY
環境變數,請以您其中一個資源金鑰取代 your-key。 - 若要設定
SPEECH_REGION
環境變數,請以您的其中一個資源區域取代 your-region。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前主控台的環境變數,您可以使用 set
(而不是 setx
) 來設定環境變數。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果正在使用 Visual Studio 作為編輯器,請您在執行範例前重新啟動 Visual Studio。
從檔案翻譯語音
請遵循下列步驟來建立 Node.js 主控台應用程式進行語音辨識。
開啟要新增專案的命令提示字元,然後建立名為
SpeechTranslation.js
的新檔案。安裝適用於 JavaScript 的語音 SDK:
npm install microsoft-cognitiveservices-speech-sdk
將下列程式碼複製到
SpeechTranslation.js
:const fs = require("fs"); const sdk = require("microsoft-cognitiveservices-speech-sdk"); // This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" const speechTranslationConfig = sdk.SpeechTranslationConfig.fromSubscription(process.env.SPEECH_KEY, process.env.SPEECH_REGION); speechTranslationConfig.speechRecognitionLanguage = "en-US"; var language = "it"; speechTranslationConfig.addTargetLanguage(language); function fromFile() { let audioConfig = sdk.AudioConfig.fromWavFileInput(fs.readFileSync("YourAudioFile.wav")); let translationRecognizer = new sdk.TranslationRecognizer(speechTranslationConfig, audioConfig); translationRecognizer.recognizeOnceAsync(result => { switch (result.reason) { case sdk.ResultReason.TranslatedSpeech: console.log(`RECOGNIZED: Text=${result.text}`); console.log("Translated into [" + language + "]: " + result.translations.get(language)); break; case sdk.ResultReason.NoMatch: console.log("NOMATCH: Speech could not be recognized."); break; case sdk.ResultReason.Canceled: const cancellation = sdk.CancellationDetails.fromResult(result); console.log(`CANCELED: Reason=${cancellation.reason}`); if (cancellation.reason == sdk.CancellationReason.Error) { console.log(`CANCELED: ErrorCode=${cancellation.ErrorCode}`); console.log(`CANCELED: ErrorDetails=${cancellation.errorDetails}`); console.log("CANCELED: Did you set the speech resource key and region values?"); } break; } translationRecognizer.close(); }); } fromFile();
在
SpeechTranslation.js
中,以自己的 WAV 檔案取代YourAudioFile.wav
。 此範例只會辨識 WAV 檔案中的語音。 如需其他音訊格式的資訊,請參閱如何使用壓縮的輸入音訊。 此範例最多支援 30 秒的音訊。若要變更語音辨識語言,請以另一種支援的語言取代
en-US
。 使用破折號 (-
) 分隔符號指定完整的地區設定。 例如,es-ES
代表西班牙文 (西班牙)。 如果您未指定語言,則預設語言為en-US
。 如需詳細了解如何識別所可能說出的多種語言之一,請參閱語言識別。若要變更翻譯目標語言,請以另一種支援的語言取代
it
。 除了少數例外,您只須指定地區設定破折號 (-
) 分隔符號前面的語言代碼即可。 例如,針對西班牙文 (西班牙) 使用es
而非es-ES
。 如果您未指定語言,則預設語言為en
。
執行新的主控台應用程式,以從檔案啟動語音辨識:
node.exe SpeechTranslation.js
音訊檔案中的語音應該以目標語言的翻譯文字輸出:
RECOGNIZED: Text=I'm excited to try speech translation.
Translated into [it]: Sono entusiasta di provare la traduzione vocale.
備註
您現在已完成快速入門,以下是一些其他考量:
此範例使用 recognizeOnceAsync
作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識相關資訊 (包括多語系交談),請參閱如何翻譯語音。
注意
Node.js 不支援從麥克風辨識語音。 這項功能僅在瀏覽器型 JavaScript 環境中受到支援。
清除資源
您可以使用 Azure 入口網站或 Azure 命令列介面 (CLI) 來移除您所建立的語音資源。
參考文件 | 套件 (下載) | GitHub 上的其他範例
適用於 Objective-C 的語音 SDK 支援語音翻譯,但我們尚未在此納入指南。 請選取另一種程式設計語言來開始使用並了解概念,或參閱本文開頭連結的 Objective-C 參考和範例。
參考文件 | 套件 (下載) | GitHub 上的其他範例
適用於 Swift 的語音 SDK 支援語音翻譯,但我們尚未在此納入指南。 請選取另一種程式設計語言來開始使用並了解概念,或參閱本文開頭連結的 Swift 參考和範例。
參考文件 | 套件 (PyPi) | GitHub 上的其他範例
在本快速入門中,您會執行應用程式,將某一種語言的語音翻譯成另一種語言的文字。
提示
試用 Azure AI 語音工具組,輕鬆地在 Visual Studio Code 上建置和執行範例。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- 在 Azure 入口網站上建立語音資源。
- 取得語音資源金鑰和區域。 部署語音資源之後,選取 [移至資源] 以檢視和管理索引鍵。
設定環境
適用於 Python 的語音 SDK 會以 Python 套件索引 (PyPI) 模組的形式提供。 適用於 Python 的語音 SDK 與 Windows、Linux 和 macOS 相容。
- 請為平台安裝適用於 Visual Studio 2015、2017、2019 和 2022 的 Microsoft Visual C++ 可轉散發套件。 第一次安裝此套件時可能需要重新啟動。
- 在 Linux 上,您必須使用 x64 目標架構。
安裝 Python 從 3.7 或更新的版本。 請先檢查 SDK 安裝指南以了解更多需求
設定環境變數
您必須驗證應用程式以存取 Azure AI 服務。 本文說明如何使用環境變數來儲存您的認證。 然後,您可以從程式碼存取環境變數,以驗證您的應用程式。 針對實際執行環境,使用更安全的方法來儲存和存取您的認證。
重要
我們建議使用適用於 Azure 資源的受控識別搭配 Microsoft Entra ID 驗證,以避免使用在雲端執行的應用程式儲存認證。
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
若要設定語音資源索引鍵和區域的環境變數,請開啟主控台視窗,並遵循作業系統和開發環境的指示進行。
- 若要設定
SPEECH_KEY
環境變數,請以您其中一個資源金鑰取代 your-key。 - 若要設定
SPEECH_REGION
環境變數,請以您的其中一個資源區域取代 your-region。
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
注意
如果您只需要存取目前主控台的環境變數,您可以使用 set
(而不是 setx
) 來設定環境變數。
新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的程式,包括主控台視窗。 例如,如果正在使用 Visual Studio 作為編輯器,請您在執行範例前重新啟動 Visual Studio。
從麥克風翻譯語音
請遵循下列步驟以建立新的主控台應用程式。
開啟要新增專案的命令提示字元,然後建立名為
speech_translation.py
的新檔案。執行此命令以安裝語音 SDK:
pip install azure-cognitiveservices-speech
將下列程式碼複製到
speech_translation.py
:import os import azure.cognitiveservices.speech as speechsdk def recognize_from_microphone(): # This example requires environment variables named "SPEECH_KEY" and "SPEECH_REGION" speech_translation_config = speechsdk.translation.SpeechTranslationConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) speech_translation_config.speech_recognition_language="en-US" to_language ="it" speech_translation_config.add_target_language(to_language) audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True) translation_recognizer = speechsdk.translation.TranslationRecognizer(translation_config=speech_translation_config, audio_config=audio_config) print("Speak into your microphone.") translation_recognition_result = translation_recognizer.recognize_once_async().get() if translation_recognition_result.reason == speechsdk.ResultReason.TranslatedSpeech: print("Recognized: {}".format(translation_recognition_result.text)) print("""Translated into '{}': {}""".format( to_language, translation_recognition_result.translations[to_language])) elif translation_recognition_result.reason == speechsdk.ResultReason.NoMatch: print("No speech could be recognized: {}".format(translation_recognition_result.no_match_details)) elif translation_recognition_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = translation_recognition_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)) print("Did you set the speech resource key and region values?") recognize_from_microphone()
若要變更語音辨識語言,請以另一種支援的語言取代
en-US
。 使用破折號 (-
) 分隔符號指定完整的地區設定。 例如,es-ES
代表西班牙文 (西班牙)。 如果您未指定語言,則預設語言為en-US
。 如需詳細了解如何識別所可能說出的多種語言之一,請參閱語言識別。若要變更翻譯目標語言,請以另一種支援的語言取代
it
。 除了少數例外,您只須指定地區設定破折號 (-
) 分隔符號前面的語言代碼即可。 例如,針對西班牙文 (西班牙) 使用es
而非es-ES
。 如果您未指定語言,則預設語言為en
。
執行新的主控台應用程式,以從麥克風啟動語音辨識:
python speech_translation.py
出現提示時,請用麥克風說話。 您說出的內容應該會以目標語言輸出為翻譯文字:
Speak into your microphone.
Recognized: I'm excited to try speech translation.
Translated into 'it': Sono entusiasta di provare la traduzione vocale.
備註
您現在已完成快速入門,以下是一些其他考量:
- 此範例使用
recognize_once_async
作業來轉譯最多 30 秒的語句,或直到偵測到無聲為止。 如需較長音訊的連續辨識相關資訊 (包括多語系交談),請參閱如何翻譯語音。 - 若要從音訊檔案辨識語音,請使用
filename
,而不是use_default_microphone
:audio_config = speechsdk.audio.AudioConfig(filename="YourAudioFile.wav")
- 針對 MP4 之類的壓縮音訊檔案,請安裝 GStreamer 並使用
PullAudioInputStream
或PushAudioInputStream
。 如需詳細資訊,請參閱如何使用壓縮的輸入音訊。
清除資源
您可以使用 Azure 入口網站或 Azure 命令列介面 (CLI) 來移除您所建立的語音資源。
語音轉換文字 REST API 參考 | 適用於簡短音訊的語音轉換文字 REST API 參考 | GitHub 上的其他範例
REST API 不支援語音翻譯。 請從此頁面頂端選取另一個程式設計語言或工具。
在本快速入門中,您會執行應用程式,將某一種語言的語音翻譯成另一種語言的文字。
提示
試用 Azure AI 語音工具組,輕鬆地在 Visual Studio Code 上建置和執行範例。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- 在 Azure 入口網站上建立語音資源。
- 取得語音資源金鑰和區域。 部署語音資源之後,選取 [移至資源] 以檢視和管理索引鍵。
設定環境
請遵循下列步驟,並參閱語音 CLI 快速入門,以了解平台的其他需求。
執行下列 .NET CLI 命令以安裝 Speech CLI:
dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
執行下列命令來設定您的語音資源金鑰和區域。 以您的語音資源金鑰取代
SUBSCRIPTION-KEY
,而以您的語音資源區域取代REGION
。spx config @key --set SUBSCRIPTION-KEY spx config @region --set REGION
從麥克風翻譯語音
執行下列命令,將麥克風的語音從英文翻譯成義大利文:
spx translate --source en-US --target it --microphone
用麥克風說話,您會即時看到翻譯語音的謄寫。 語音 CLI 會在一段無回應時間 (30 秒) 之後,或當您按下 Ctrl + C 時停止。
Connection CONNECTED...
TRANSLATING into 'it': Sono (from 'I'm')
TRANSLATING into 'it': Sono entusiasta (from 'I'm excited to')
TRANSLATING into 'it': Sono entusiasta di provare la parola (from 'I'm excited to try speech')
TRANSLATED into 'it': Sono entusiasta di provare la traduzione vocale. (from 'I'm excited to try speech translation.')
備註
您現在已完成快速入門,以下是一些其他考量:
- 若要從音訊檔案取得語音,請使用
--file
,而不是--microphone
。 針對 MP4 之類的壓縮音訊檔案,請安裝 GStreamer 並使用--format
。 如需詳細資訊,請參閱如何使用壓縮的輸入音訊。spx translate --source en-US --target it --file YourAudioFile.wav spx translate --source en-US --target it --file YourAudioFile.mp4 --format any
- 若要改善特定單字或語句的辨識正確性,請使用片語清單。 您可包含內嵌的片語清單或隨附文字檔:
spx translate --source en-US --target it --microphone --phrases "Contoso;Jessie;Rehaan;" spx translate --source en-US --target it --microphone --phrases @phrases.txt
- 若要變更語音辨識語言,請以另一種支援的語言取代
en-US
。 使用破折號 (-
) 分隔符號指定完整的地區設定。 例如,es-ES
代表西班牙文 (西班牙)。 如果您未指定語言,則預設語言為en-US
。spx translate --microphone --source es-ES
- 若要變更翻譯目標語言,請以另一種支援的語言取代
it
。 除了少數例外,您只須指定地區設定破折號 (-
) 分隔符號前面的語言代碼即可。 例如,針對西班牙文 (西班牙) 使用es
而非es-ES
。 如果您未指定語言,則預設語言為en
。spx translate --microphone --target es
- 若要連續辨識超過 30 秒的音訊,請附加
--continuous
:spx translate --source en-US --target it --microphone --continuous
執行此命令以取得其他語音翻譯選項的相關資訊,例如檔案輸入和輸出:
spx help translate
清除資源
您可以使用 Azure 入口網站或 Azure 命令列介面 (CLI) 來移除您所建立的語音資源。