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


Что такое внедренная речь?

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

Внимание

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

Требования платформы

Внедренная речь включается в пакет SDK службы "Речь" (версия 1.24.1 и более поздние версии) для C#, C++и Java. Дополнительные сведения см. в общих требованиях к установке пакета SDK службы "Речь" для языка программирования и целевой платформы.

Выберите целевую среду

Требуется Android 7.0 (уровень API 24) или более поздней версии на оборудовании Arm64 (arm64-v8a) или Arm32 (armeabi-v7a).

Внедренные TTS с нейронными голосами поддерживаются только в Arm64.

Ограничения

Внедренная речь доступна только с помощью пакетов SDK для C#, C++и Java. Другие пакеты SDK для службы "Речь", интерфейс командной строки службы "Речь" и REST API не поддерживают внедренную речь.

Встроенное распознавание речи поддерживает только моно 16-разрядные, 8-kГц или 16-kГц в кодировке WAV аудиоформаты.

Внедренные нейронные голоса поддерживают 24 кГц RIFF/RAW с требованием ОЗУ размером 100 МБ.

Внедренные пакеты ПАКЕТА SDK для службы "Речь"

Для внедренных приложений C# установите следующий пакет SDK службы "Речь" для пакетов C#:

Пакет Description
Microsoft.CognitiveServices.Speech Требуется для использования пакета SDK службы "Речь"
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR Требуется для встроенного распознавания речи
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Требуется для встроенного синтеза речи
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime Требуется для встроенного распознавания речи и синтеза
Microsoft.CognitiveServices.Speech.Extension.Telemetry Требуется для встроенного распознавания речи и синтеза

Для внедренных приложений C++ установите следующий пакет SDK службы "Речь" для пакетов C++:

Пакет Description
Microsoft.CognitiveServices.Speech Требуется для использования пакета SDK службы "Речь"
Microsoft.CognitiveServices.Speech.Extension.Embedded.SR Требуется для встроенного распознавания речи
Microsoft.CognitiveServices.Speech.Extension.Embedded.TTS Требуется для встроенного синтеза речи
Microsoft.CognitiveServices.Speech.Extension.ONNX.Runtime Требуется для встроенного распознавания речи и синтеза
Microsoft.CognitiveServices.Speech.Extension.Telemetry Требуется для встроенного распознавания речи и синтеза

Выберите целевую среду

Для внедренных приложений Java добавьте клиент-sdk-embedded (.jar) в качестве зависимостей. Этот пакет поддерживает облачную, внедренную и гибридную речь.

Внимание

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

Выполните следующие действия, чтобы установить пакет SDK службы "Речь" для Java с помощью Apache Maven:

  1. Установите Apache Maven.
  2. Откройте командную строку, в которой должен быть создан новый проект, и создайте файл pom.xml.
  3. Скопируйте следующее XML-содержимое в 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-embedded</artifactId>
            <version>1.40.0</version>
            </dependency>
        </dependencies>
    </project>
    
  4. Выполните следующую команду Maven, чтобы установить пакет SDK службы "Речь" и зависимости.
    mvn clean dependency:copy-dependencies
    

Модели и голоса

Для внедренной речи необходимо скачать модели распознавания речи для преобразования речи в текст и голоса для преобразования текста в речь. Инструкции предоставляются после успешного завершения процесса проверки ограниченного доступа.

Доступны следующие текстовые модели: da-DK, de-DE, en-AU, en-CA, en-GB, en-IE, en-IN, en-IN, en-US, es-ES, es-MX, fr-CA, fr-FR, it-IT, ja-JP, ko-KR, pt-BR, pt-PT, zh-CN, zh-HK и zh-TW.

Все тексты для речи языковых стандартов здесь (кроме fa-IR, персидского (Ирана)) доступны вне поля с 1 выбранной женщиной и /или 1 выбранными мужскими голосами. Мы приветствуем ваши входные данные, чтобы помочь нам оценить спрос на больше языков и голосов.

Внедренная конфигурация речи

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

EmbeddedSpeechConfig Используйте объект, чтобы задать расположение моделей или голосов. Если приложение используется как для речи, так и для текста, можно использовать один и тот же EmbeddedSpeechConfig объект, чтобы задать расположение моделей и голосов.

// Provide the location of the models and voices.
List<string> paths = new List<string>();
paths.Add("C:\\dev\\embedded-speech\\stt-models");
paths.Add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.FromPaths(paths.ToArray());

// For speech to text
embeddedSpeechConfig.SetSpeechRecognitionModel(
    "Microsoft Speech Recognizer en-US FP Model V8",
    Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));

// For text to speech
embeddedSpeechConfig.SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    Environment.GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);

Совет

Функция GetEnvironmentVariable определяется в кратком руководстве по тексту и тексте в кратком руководстве по речью.

// Provide the location of the models and voices.
vector<string> paths;
paths.push_back("C:\\dev\\embedded-speech\\stt-models");
paths.push_back("C:\\dev\\embedded-speech\\tts-voices");
auto embeddedSpeechConfig = EmbeddedSpeechConfig::FromPaths(paths);

// For speech to text
embeddedSpeechConfig->SetSpeechRecognitionModel((
    "Microsoft Speech Recognizer en-US FP Model V8",
    GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));

// For text to speech
embeddedSpeechConfig->SetSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    GetEnvironmentVariable("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig->SetSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat::Riff24Khz16BitMonoPcm);
// Provide the location of the models and voices.
List<String> paths = new ArrayList<>();
paths.add("C:\\dev\\embedded-speech\\stt-models");
paths.add("C:\\dev\\embedded-speech\\tts-voices");
var embeddedSpeechConfig = EmbeddedSpeechConfig.fromPaths(paths);

// For speech to text
embeddedSpeechConfig.setSpeechRecognitionModel(
    "Microsoft Speech Recognizer en-US FP Model V8",
    System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));

// For text to speech
embeddedSpeechConfig.setSpeechSynthesisVoice(
    "Microsoft Server Speech Text to Speech Voice (en-US, JennyNeural)",
    System.getenv("EMBEDDED_SPEECH_MODEL_LICENSE"));
embeddedSpeechConfig.setSpeechSynthesisOutputFormat(SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm);

Внедренные примеры кода речи

Вы можете найти готовые к использованию внедренных примеров речи на сайте GitHub. Примечания к проектам с нуля см. в конкретных примерах документации:

Вы можете найти готовые к использованию внедренных примеров речи на сайте GitHub. Примечания к проектам с нуля см. в конкретных примерах документации:

Вы можете найти готовые к использованию внедренных примеров речи на сайте GitHub. Примечания к проектам с нуля см. в конкретных примерах документации:

Гибридная речь

Гибридная речь с HybridSpeechConfig объектом использует облачную службу распознавания речи по умолчанию и внедренную речь в качестве резервного варианта, если подключение к облаку ограничено или медленно.

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

При использовании гибридной конфигурации речи для преобразования текста в речь (голоса), внедренные и облачные синтезы выполняются параллельно, а конечный результат выбирается на основе скорости отклика. Лучший результат оценивается снова по каждому новому запросу синтеза.

Облачная речь

Для облачной SpeechConfig речи используется объект, как показано в кратком руководстве по тексту и тексте для речи. Чтобы запустить краткие руководства по внедренной речи, можно заменить SpeechConfig на EmbeddedSpeechConfig или HybridSpeechConfig. Большинство других кодов распознавания речи и синтеза совпадают с использованием облачной, внедренной или гибридной конфигурации.

Встроенные возможности голосов

Для внедренных голосов важно отметить, что некоторые теги SSML в настоящее время не поддерживаются из-за различий в структуре модели. Подробные сведения о неподдерживаемых тегах SSML см. в следующей таблице.

Уровень 1 Уровень 2 Вложенные значения Поддержка внедренных NTTS
audio src No
закладка Да
break strength Да
Время Да
тишина type Ведущий, Tailing, запятая и т. д. No
значение No
emphasis level No
lang No
лексикон uri Да
Математические функции No
msttsaudioduration значение No
msttsbackgroundaudio src No
том No
fadein No
fadeout No
msttsexpress-as style No
styledegree No
роль No
msttssilence No
msttsviseme type redlips_front, FacialExpression No
п Да
phoneme алфавит ipa, sapi, ups и т. д. Да
ph Да
просодия контур Поддержка уровней предложений, уровень слова только en-US и zh-CN Да
смола Да
range Да
rate Да
том Да
s Да
скажи как interpret-as символы, описание, number_digit, дата и т. д. Да
format Да
detail Да
дочерний объект псевдоним Да
speak Да
voice No