Краткое руководство. Распознавание и преобразование речи в текст

Справочная документация | Пакет (NuGet) | Дополнительные примеры в GitHub

В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.

Необходимые компоненты

Настройка среды

Пакет SDK для службы "Речь" доступен в виде пакета NuGet и реализует .NET Standard 2.0. Вы установите пакет SDK службы "Речь" далее в этом руководстве, но сначала проверка руководство по установке пакета SDK для дополнительных требований.

Настройка переменных среды

Приложение должно пройти проверку подлинности для доступа к ресурсам служб ИИ Azure. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. Например, после получения ключа для ресурса "Речь" напишите его в новую переменную среды на локальном компьютере, на котором выполняется приложение.

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье "Безопасность служб искусственного интеллекта Azure".

Чтобы задать переменную среды для ключа ресурса "Речь", откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменную среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Перевод речи с микрофона

Выполните следующие действия, чтобы создать новое консольное приложение и установить пакет SDK для службы "Речь".

  1. Откройте командную строку, в которой должен быть создан проект, и создайте консольное приложение с помощью CLI .NET. Файл Program.cs должен быть создан в каталоге проекта.

    dotnet new console
    
  2. Установите пакет SDK для службы "Речь" в новом проекте с помощью CLI .NET.

    dotnet add package Microsoft.CognitiveServices.Speech
    
  3. Замените все содержимое 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);
        }
    }
    
  4. Чтобы изменить язык распознавания речи, замените en-US на другой поддерживаемый язык. Укажите полный языковой стандарт с разделителем тире (-). Например, es-ES для испанского (Испания). Если язык не указан, по умолчанию используется en-US. Дополнительные сведения о том, как определить один из нескольких языков, на которых могут говорить, см. в разделе Определение языка.

  5. Чтобы изменить целевой язык перевода, замените 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

В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.

Необходимые компоненты

Настройка среды

Пакет SDK для службы "Речь" доступен в виде пакета NuGet и реализует .NET Standard 2.0. Затем вы устанавливаете пакет SDK службы "Речь" в этом руководстве, но сначала проверка руководство по установке пакета SDK для дополнительных требований

Настройка переменных среды

Приложение должно пройти проверку подлинности для доступа к ресурсам служб ИИ Azure. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. Например, после получения ключа для ресурса "Речь" напишите его в новую переменную среды на локальном компьютере, на котором выполняется приложение.

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье "Безопасность служб искусственного интеллекта Azure".

Чтобы задать переменную среды для ключа ресурса "Речь", откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменную среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Перевод речи с микрофона

Выполните следующие действия, чтобы создать новое консольное приложение и установить пакет SDK для службы "Речь".

  1. Создайте проект консоли C++ в Visual Studio Community 2022 с именем SpeechTranslation.

  2. Установите пакет SDK для службы "Речь" в новом проекте с помощью диспетчера пакетов NuGet.

    Install-Package Microsoft.CognitiveServices.Speech
    
  3. Замените все содержимое 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
    }
    
  4. Чтобы изменить язык распознавания речи, замените en-US на другой поддерживаемый язык. Укажите полный языковой стандарт с разделителем тире (-). Например, es-ES для испанского (Испания). Если язык не указан, по умолчанию используется en-US. Дополнительные сведения о том, как определить один из нескольких языков, на которых могут говорить, см. в разделе Определение языка.

  5. Чтобы изменить целевой язык перевода, замените 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

В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.

Необходимые компоненты

Настройка среды

Прежде чем выполнять какие-либо действия, необходимо установить пакет SDK для службы "Речь". Пример, приведенный в этом кратком руководстве, работает со средой выполнения Java.

  1. Установите Apache Maven. Затем выполните команду mvn -v , чтобы подтвердить успешную установку.
  2. Создайте файл 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.37.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Установите пакет SDK службы "Речь" и зависимости.
    mvn clean dependency:copy-dependencies
    

Настройка переменных среды

Приложение должно пройти проверку подлинности для доступа к ресурсам служб ИИ Azure. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. Например, после получения ключа для ресурса "Речь" напишите его в новую переменную среды на локальном компьютере, на котором выполняется приложение.

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье "Безопасность служб искусственного интеллекта Azure".

Чтобы задать переменную среды для ключа ресурса "Речь", откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменную среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Перевод речи с микрофона

Чтобы создать новое консольное приложение для распознавания речи, выполните следующие действия.

  1. Создайте новый файл с именем SpeechTranslation.java в том же корневом каталоге проекта.

  2. Скопируйте в файл 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);
        }
    }
    
  3. Чтобы изменить язык распознавания речи, замените en-US на другой поддерживаемый язык. Укажите полный языковой стандарт с разделителем тире (-). Например, es-ES для испанского (Испания). Если язык не указан, по умолчанию используется en-US. Дополнительные сведения о том, как определить один из нескольких языков, на которых могут говорить, см. в разделе Определение языка.

  4. Чтобы изменить целевой язык перевода, замените 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 | Исходный код библиотеки

В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.

Необходимые компоненты

Настройка среды

Сначала необходимо установить пакет SDK службы "Речь" для JavaScript. Если вам только нужно имя пакета для установки, выполните команду npm install microsoft-cognitiveservices-speech-sdk. Подробные инструкции по установке см. в статье Руководство по установке пакета SDK.

Настройка переменных среды

Приложение должно пройти проверку подлинности для доступа к ресурсам служб ИИ Azure. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. Например, после получения ключа для ресурса "Речь" напишите его в новую переменную среды на локальном компьютере, на котором выполняется приложение.

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье "Безопасность служб искусственного интеллекта Azure".

Чтобы задать переменную среды для ключа ресурса "Речь", откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменную среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Перевод речи из файла

Выполните следующие действия, чтобы создать консольное приложение Node.js для распознавания речи.

  1. Откройте командную строку, в которой должен быть создан новый проект, и создайте новый файл с именем SpeechTranslation.js.

  2. Установите пакет SDK службы "Речь" для JavaScript:

    npm install microsoft-cognitiveservices-speech-sdk
    
  3. Скопируйте в файл 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();
    
  4. В SpeechTranslation.js замените YourAudioFile.wav на ваш WAV-файл. В этом примере распознается речь только из WAV-файлов. Дополнительные сведения о других форматах звука см. в разделе Как использовать сжатые входные аудиофайлы. В этом примере поддерживается до 30 секунд звука.

  5. Чтобы изменить язык распознавания речи, замените en-US на другой поддерживаемый язык. Укажите полный языковой стандарт с разделителем тире (-). Например, es-ES для испанского (Испания). Если язык не указан, по умолчанию используется en-US. Дополнительные сведения о том, как определить один из нескольких языков, на которых могут говорить, см. в разделе Определение языка.

  6. Чтобы изменить целевой язык перевода, замените 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

В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.

Необходимые компоненты

Настройка среды

Пакет SDK для Python доступен в виде модуля индекса пакетов Python (PyPI). Пакет SDK для службы "Речь" (Python) совместим с Windows, Linux и macOS.

Установите версию Python с версии 3.7 или более поздней версии. Сначала ознакомьтесь со статьей Руководство по установке пакета SDK, чтобы узнать о дополнительных требованиях.

Настройка переменных среды

Приложение должно пройти проверку подлинности для доступа к ресурсам служб ИИ Azure. Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным,. Например, после получения ключа для ресурса "Речь" напишите его в новую переменную среды на локальном компьютере, на котором выполняется приложение.

Совет

Не включайте ключ непосредственно в код и никогда не публикуйте его. Дополнительные варианты проверки подлинности, такие как Azure Key Vault, см. в статье "Безопасность служб искусственного интеллекта Azure".

Чтобы задать переменную среды для ключа ресурса "Речь", откройте окно консоли и следуйте инструкциям в вашей операционной системе и среде разработки.

  • Чтобы задать SPEECH_KEY переменную среды, замените ключ одним из ключей ресурса.
  • Чтобы задать SPEECH_REGION переменную среды, замените регион одним из регионов для ресурса.
setx SPEECH_KEY your-key
setx SPEECH_REGION your-region

Примечание.

Если вам нужно получить доступ только к переменным среды в текущей консоли, можно задать переменную set среды вместо setx.

После добавления переменных среды может потребоваться перезапустить все программы, которые должны считывать переменную среды, включая окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Перевод речи с микрофона

Чтобы создать новое консольное приложение, выполните указанные ниже действия.

  1. Откройте командную строку, в которой должен быть создан новый проект, и создайте новый файл с именем speech_translation.py.

  2. Выполните следующую команду для установки пакета SDK для службы "Речь".

    pip install azure-cognitiveservices-speech
    
  3. Скопируйте в файл 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"
    
        target_language="it"
        speech_translation_config.add_target_language(target_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(
                target_language, 
                translation_recognition_result.translations[target_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()
    
  4. Чтобы изменить язык распознавания речи, замените en-US на другой поддерживаемый язык. Укажите полный языковой стандарт с разделителем тире (-). Например, es-ES для испанского (Испания). Если язык не указан, по умолчанию используется en-US. Дополнительные сведения о том, как определить один из нескольких языков, на которых могут говорить, см. в разделе Определение языка.

  5. Чтобы изменить целевой язык перевода, замените 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 не поддерживает перевод речи. Выберите другой язык программирования или средство в верхней части этой страницы.

В этом кратком руководстве показано, как с помощью приложения перевести речь на одном языке в текст на другом.

Необходимые компоненты

Настройка среды

Выполните следующие действия и ознакомьтесь с кратким руководством по интерфейсу командной строки службы "Речь" для других требований для платформы.

  1. Выполните следующую команду .NET CLI, чтобы установить интерфейс командной строки службы "Речь".

    dotnet tool install --global Microsoft.CognitiveServices.Speech.CLI
    
  2. Выполните следующие команды, чтобы настроить ключ ресурса службы "Речь" и регион. Замените ключом ресурса "Речь" и замените SUBSCRIPTION-KEYREGION регионом ресурсов службы "Речь".

    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.

Следующие шаги