Прочитать на английском

Поделиться через


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

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

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

Совет

Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.

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

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

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

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

Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Важно!

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

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

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

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

Измените файл bashrc и добавьте переменные среды:

export SPEECH_KEY=your-key
export SPEECH_REGION=your-region

После добавления переменных среды запустите source ~/.bashrc из окна консоли, чтобы применить изменения.

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

Выполните следующие действия, чтобы создать новое консольное приложение и установить пакет 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

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

Совет

Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.

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

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

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

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

Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Важно!

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

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

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

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

Измените файл bashrc и добавьте переменные среды:

export SPEECH_KEY=your-key
export SPEECH_REGION=your-region

После добавления переменных среды запустите source ~/.bashrc из окна консоли, чтобы применить изменения.

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

Выполните следующие действия, чтобы создать новое консольное приложение и установить пакет 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

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

Совет

Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.

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

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

Прежде чем выполнять какие-либо действия, необходимо установить пакет 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.42.0</version>
            </dependency>
        </dependencies>
    </project>
    
  3. Установите пакет SDK службы "Речь" и зависимости.
    mvn clean dependency:copy-dependencies
    

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

Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Важно!

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

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

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

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

Измените файл bashrc и добавьте переменные среды:

export SPEECH_KEY=your-key
export SPEECH_REGION=your-region

После добавления переменных среды запустите source ~/.bashrc из окна консоли, чтобы применить изменения.

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

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

  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 |

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

Совет

Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.

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

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

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

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

Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Важно!

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

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

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

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

Измените файл bashrc и добавьте переменные среды:

export SPEECH_KEY=your-key
export SPEECH_REGION=your-region

После добавления переменных среды запустите source ~/.bashrc из окна консоли, чтобы применить изменения.

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

Выполните следующие действия, чтобы создать консольное приложение 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

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

Совет

Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.

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

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

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

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

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

Для доступа к службам ИИ Azure необходимо пройти проверку подлинности приложения. В этой статье показано, как использовать переменные среды для хранения учетных данных. Затем вы можете получить доступ к переменным среды из кода для проверки подлинности приложения. Для рабочей среды используйте более безопасный способ хранения и доступа к учетным данным.

Важно!

Мы рекомендуем использовать проверку подлинности Идентификатора Microsoft Entra с управляемыми удостоверениями для ресурсов Azure, чтобы избежать хранения учетных данных с приложениями, работающими в облаке.

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

Дополнительные сведения о безопасности служб ИИ см. в статье "Проверка подлинности запросов к службам ИИ Azure".

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

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

Измените файл bashrc и добавьте переменные среды:

export SPEECH_KEY=your-key
export SPEECH_REGION=your-region

После добавления переменных среды запустите source ~/.bashrc из окна консоли, чтобы применить изменения.

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

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

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

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

Совет

Попробуйте использовать набор средств службы "Речь Azure AI", чтобы легко создавать и запускать примеры в Visual Studio Code.

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

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

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

  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.

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