Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Встроенное распознавание речи предназначено для сценариев речи в текст и текста в речь, где подключение к облаку нестабильно или отсутствует. Например, вы можете использовать встроенное голосовое управление в промышленном оборудовании, устройство кондиционирования воздуха с поддержкой голоса или автомобиль, который может выйти из зоны действия сигнала. Вы также можете разрабатывать гибридные облачные и автономные решения. В сценариях, когда устройства должны находиться в безопасной среде, например в банке или правительственных учреждениях, следует сначала рассмотреть отключенные контейнеры.
Важно
Microsoft ограничивает доступ к внедренной речи. Вы можете подать заявку на доступ через Azure Speech в инструментах Foundry embedded speech limited access review. Дополнительные сведения см. в разделе "Ограниченный доступ" для встроенной речи.
Требования к платформе
Внедренная речь включается в пакет SDK службы "Речь" (версия 1.24.1 и более поздние версии) для C#, C++и Java. Для получения подробных сведений см. общие требования к установке SDK службы Речь для конкретного языка программирования и целевой платформы.
Ниже приведены общие оценки потребления памяти с внедренной речью. Окончательные числа зависят от конфигурации компонентов.
- Распознавание речи или перевод: общий размер файлов модели + 200 МБ.
- Синтез речи: 100–200 МБ в зависимости от локали.
Выбор целевой среды
Требуется Android 8.0 (уровень API 26) или более поздней версии на оборудовании Arm64 (arm64-v8a) или Arm32 (armeabi-v7a).
Ограничения
- Внедренная речь доступна только с помощью пакетов SDK для C#, C++и Java. Другие SDK для распознавания речи, командная строка Speech и REST API не поддерживают встраиваемую речь.
- Встроенное распознавание речи поддерживает только моно 16-битные, 8 кГц или 16 кГц аудиоформаты PCM, кодированные как WAV.
- Внедренные нейронные голоса поддерживают 16 или 24 кГц RIFF/RAW.
Встраиваемые пакеты SDK для обработки речи
Для встроенных приложений C# установите следующие пакеты SDK для C#:
| Пакет | Описание |
|---|---|
| Microsoft. CognitiveServices.Speech | Для использования 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++:
| Пакет | Описание |
|---|---|
| Microsoft. CognitiveServices.Speech | Для использования 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 встроенных приложений добавьте client-sdk-embedded (.jar) в качестве зависимости. Этот пакет поддерживает облачную, внедренную и гибридную речь.
Важно
Не добавляйте клиентский пакет SDK в тот же проект, так как он поддерживает только облачные службы распознавания речи.
Выполните следующие шаги, чтобы установить Speech SDK для Java с использованием Apache Maven:
- Установите Apache Maven.
- Откройте командную строку, в которой хотите создать проект и создайте файл
pom.xml. - Скопируйте следующее 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.43.0</version> </dependency> </dependencies> </project> - Выполните следующую команду Maven, чтобы установить пакет SDK для работы с речью и зависимости.
mvn clean dependency:copy-dependencies
Модели и голоса
Для внедренной речи необходимо скачать модели распознавания речи для преобразования речи в текст и голоса для преобразования текста в речь. Инструкции предоставляются после успешного завершения процесса проверки ограниченного доступа .
Доступны следующие речевые в текст модели: da-DK, de-DE, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, 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, персидского (Иран)) доступны из коробки с одним выбранным женским и/или одним выбранным мужским голосом. Мы приветствуем ваши входные данные, чтобы помочь нам оценить спрос на больше языков и голосов.
Внедренная конфигурация речи
Для облачных подключаемых приложений, как показано в большинстве примеров SDK для речи, используется объект SpeechConfig с API ключом и конечной точкой. Для внедренной речи не используется ресурс Foundry для распознавания речи. Вместо облачного ресурса вы используете модели и голоса , скачанные на локальное устройство.
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 |
|---|---|---|---|
| Аудио | src | Нет | |
| Закладка | Да | ||
| Перерыв | Сила | Да | |
| Время | Да | ||
| Тишина | Тип | Ведущий, Концевой, Точно-запятая и т. д. | Нет |
| Значение | Нет | ||
| Акцент | Уровень | Нет | |
| Lang | Нет | ||
| Лексикон | Uri | Да | |
| Математике | Нет | ||
| msttsaudioduration | Значение | Нет | |
| msttsbackgroundaudio | src | Нет | |
| Объем | Нет | ||
| fadein | Нет | ||
| затухание | Нет | ||
| msttsexpress-as | Стиль | Да1 | |
| styledegree | Нет | ||
| Роль | Нет | ||
| msttssilence | Нет | ||
| msttsviseme | Тип | redlips_front, FacialExpression | Нет |
| P | Да | ||
| Фонема | Алфавит | ipa, sapi, ups и т. д. | Да |
| Ph | Да | ||
| просодия | Контур | Поддержка на уровне предложений, на уровне слов только для en-US и zh-CN | Да |
| Шаг | Да | ||
| Диапазон | Да | ||
| Ставка | Да | ||
| Объем | Да | ||
| s | Да | ||
| скажи как | интерпретировать как | символы, описание, number_digit, дата и т. д. | Да |
| Формат | Да | ||
| Детали | Да | ||
| Sub | Псевдоним | Да | |
| Говорить | Да | ||
| Голос | Нет |
1 Стиль msttsexpress-as поддерживается только для en-US-JennyNeural голоса.