Краткое руководство. Распознавание и преобразование речи в текст
Справочные примеры пакета документации | (NuGet) | Дополнительные примеры на GitHub
В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.
Совет
Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.
Необходимые компоненты
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс службы "Речь" в портал Azure.
- Получение ключа ресурса службы "Речь" и региона. После развертывания ресурса службы "Речь" выберите Перейти к ресурсу для просмотра ключей и управления ими.
Настройка среды
Пакет SDK для службы "Речь" доступен в виде пакета NuGet и реализует .NET Standard 2.0. Вы устанавливаете пакет SDK службы "Речь" далее в этом руководстве, но сначала проверьте руководство по установке пакета SDK для получения дополнительных требований.
Настройка переменных среды
Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать
SPEECH_KEY
переменную среды, замените ключ одним из ключей ресурса. - Чтобы задать
SPEECH_REGION
переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set
среды вместо setx
.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Перевод речи с микрофона
Выполните следующие действия, чтобы создать новое консольное приложение и установить пакет SDK для службы "Речь".
Откройте командную строку, в которой должен быть создан проект, и создайте консольное приложение с помощью CLI .NET. Файл
Program.cs
должен быть создан в каталоге проекта.dotnet new console
Установите пакет SDK для службы "Речь" в новом проекте с помощью CLI .NET.
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 или интерфейс командной строки (CLI) Azure.
Справочные примеры пакета документации | (NuGet) | Дополнительные примеры на GitHub
В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.
Совет
Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.
Необходимые компоненты
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс службы "Речь" в портал Azure.
- Получение ключа ресурса службы "Речь" и региона. После развертывания ресурса службы "Речь" выберите Перейти к ресурсу для просмотра ключей и управления ими.
Настройка среды
Пакет SDK для службы "Речь" доступен в виде пакета NuGet и реализует .NET Standard 2.0. Вы установите пакет SDK службы "Речь" далее в этом руководстве, но сначала проверьте руководство по установке пакета SDK для любых дополнительных требований.
Настройка переменных среды
Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать
SPEECH_KEY
переменную среды, замените ключ одним из ключей ресурса. - Чтобы задать
SPEECH_REGION
переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set
среды вместо setx
.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Перевод речи с микрофона
Выполните следующие действия, чтобы создать новое консольное приложение и установить пакет SDK для службы "Речь".
Создайте проект консоли C++ в Visual Studio Community 2022 с именем
SpeechTranslation
.Установите пакет SDK для службы "Речь" в новом проекте с помощью диспетчера пакетов NuGet.
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 или интерфейс командной строки (CLI) Azure.
Справочные примеры пакета документации | (Go) | Дополнительные примеры на GitHub
Пакет SDK службы "Речь" для Go не поддерживает перевод речи. Выберите другой язык программирования или обратитесь к справочнику и примерам для языка Go, ссылки на которые приведены в начале этой статьи.
Справочная документация | по Дополнительным примерам на GitHub
В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.
Совет
Попробуйте использовать набор средств службы "Речь 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.40.0</version> </dependency> </dependencies> </project>
- Установите пакет SDK службы "Речь" и зависимости.
mvn clean dependency:copy-dependencies
Настройка переменных среды
Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать
SPEECH_KEY
переменную среды, замените ключ одним из ключей ресурса. - Чтобы задать
SPEECH_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 или интерфейс командной строки (CLI) Azure.
Справочные примеры пакета документации | (npm) | Дополнительные примеры в исходном коде библиотеки GitHub |
В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.
Совет
Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.
Необходимые компоненты
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс службы "Речь" в портал Azure.
- Получение ключа ресурса службы "Речь" и региона. После развертывания ресурса службы "Речь" выберите Перейти к ресурсу для просмотра ключей и управления ими.
Настройка среды
Сначала необходимо установить пакет SDK службы "Речь" для JavaScript. Если вам только нужно имя пакета для установки, выполните команду npm install microsoft-cognitiveservices-speech-sdk
. Подробные инструкции по установке см. в статье Руководство по установке пакета SDK.
Настройка переменных среды
Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать
SPEECH_KEY
переменную среды, замените ключ одним из ключей ресурса. - Чтобы задать
SPEECH_REGION
переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region
Примечание.
Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set
среды вместо setx
.
После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменные среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.
Перевод речи из файла
Выполните следующие действия, чтобы создать консольное приложение Node.js для распознавания речи.
Откройте командную строку, в которой должен быть создан новый проект, и создайте новый файл с именем
SpeechTranslation.js
.Установите пакет SDK службы "Речь" для JavaScript:
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
заменитеYourAudioFile.wav
на ваш 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 или интерфейс командной строки (CLI) Azure.
Справочный пакет документации | (скачивание) | Дополнительные примеры на GitHub
Пакет SDK службы "Речь" для Objective-C поддерживает перевод речи, но мы еще не включили в эту статью руководство по использованию этого пакета SDK. Выберите другой язык программирования, чтобы приступить к работе и ознакомиться с основными понятиями, или обратитесь к справочнику и примерам для языка Objective-C, ссылки на которые приведены в начале этой статьи.
Справочный пакет документации | (скачивание) | Дополнительные примеры на GitHub
Пакет SDK службы "Речь" для Swift поддерживает перевод речи, но мы еще не включили в эту статью руководство по использованию этого пакета SDK. Выберите другой язык программирования, чтобы приступить к работе и ознакомиться с основными понятиями, или обратитесь к справочнику и примерам для языка Swift, ссылки на которые приведены в начале этой статьи.
Справочные примеры пакета документации | (PyPi) | Дополнительные примеры на GitHub
В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.
Совет
Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.
Необходимые компоненты
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс службы "Речь" в портал Azure.
- Получение ключа ресурса службы "Речь" и региона. После развертывания ресурса службы "Речь" выберите Перейти к ресурсу для просмотра ключей и управления ими.
Настройка среды
Пакет SDK для Python доступен в виде модуля индекса пакетов Python (PyPI). Пакет SDK для службы "Речь" (Python) совместим с Windows, Linux и macOS.
- Для платформы необходимо установить microsoft Распространяемый компонент Visual C++ для Visual Studio 2015, 2017, 2019 и 2022. При первой установке этого пакета может потребоваться перезагрузка.
- В Linux необходимо использовать целевую архитектуру x64.
Установите версию Python с версии 3.7 или более поздней версии. Сначала ознакомьтесь со статьей Руководство по установке пакета SDK, чтобы узнать о дополнительных требованиях.
Настройка переменных среды
Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.
Внимание
Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.
Если вы используете ключ API, сохраните его в другом месте, например в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.
Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".
Чтобы задать переменные среды для ключа ресурса службы "Речь" и региона, откройте окно консоли и следуйте инструкциям для вашей операционной системы и среды разработки.
- Чтобы задать
SPEECH_KEY
переменную среды, замените ключ одним из ключей ресурса. - Чтобы задать
SPEECH_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 или интерфейс командной строки (CLI) Azure.
Преобразование речи в текст REST API ссылки на | речь на текстовый REST API для краткой справки по звуковой ссылке | на Дополнительные примеры на GitHub
REST API не поддерживает перевод речи. Выберите другой язык программирования или средство в верхней части этой страницы.
В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.
Совет
Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.
Необходимые компоненты
- Подписка Azure. Вы можете создать бесплатную учетную запись.
- Создайте ресурс службы "Речь" в портал Azure.
- Получение ключа ресурса службы "Речь" и региона. После развертывания ресурса службы "Речь" выберите Перейти к ресурсу для просмотра ключей и управления ими.
Настройка среды
Выполните следующие действия и ознакомьтесь с кратким руководством по интерфейсу командной строки службы "Речь" для других требований для платформы.
Выполните следующую команду .NET 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
Поговорите с микрофоном, и вы увидите транскрибирование переведенной речи в режиме реального времени. Интерфейс командной строки службы "Речь" останавливается после периода молчания, через 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 или интерфейс командной строки (CLI) Azure.