Что такое внедренная речь?
Внедренная речь предназначена для преобразования речи на устройство в текст и текст в речевые сценарии, в которых подключение к облаку является периодическим или недоступным. Например, вы можете использовать внедренную речь в промышленном оборудовании, устройство кондиционирования воздуха с поддержкой голоса или автомобиль, который может выйти из диапазона. Вы также можете разрабатывать гибридные облачные и автономные решения. В сценариях, когда устройства должны находиться в безопасной среде, например в банке или правительственных сущностях, следует сначала рассмотреть возможность отключения контейнеров.
Внимание
Корпорация Майкрософт ограничивает доступ к внедренной речи. Вы можете подать заявку на доступ с помощью проверки ограниченного доступа в службе "Речь искусственного интеллекта 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:
- Установите 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.40.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-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 |