Объект Device/Методы/TextToSound: различия между версиями

Материал из Call Office Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Метод '''TextToSound''' выполняет синтез голосового сообщения. ==Синтаксис== :<syntaxhighlight lang="c"> TextToSo…»)
 
 
(не показаны 33 промежуточные версии 4 участников)
Строка 1: Строка 1:
Метод '''TextToSound''' выполняет синтез голосового сообщения.
==Синтаксис==
==Синтаксис==
:<syntaxhighlight lang="c">
:<syntaxhighlight lang="c">
TextToSound (BSTR Text)
TextToSound (BSTR Text, BSTR Parameters)
</syntaxhighlight>
</syntaxhighlight>


==Параметры==
==Параметры==
:{|border="0" cellspacing="0"
*'''Text''' - текст синтезируемого сообщения.
|-  
*'''Parameters''' - параметры синтеза текста.
|'''Text'''
 
| - текст синтезируемого сообщения.
=== Параметры синтеза текста с использованием сервиса Google ===
|}
*'''Service''' - сервис синтеза Google (Service=Google;).
*'''Lang''' - язык.
*'''Speed''' - скорость произнесения текста.
*'''Voice''' - голос.
*'''Emotion''' - эмоциональная окраска голоса.
 
=== Параметры синтеза текста с использованием сервиса Yandex API v1 ===
*'''Service''' - сервис синтеза Google (Service=Yandex;).
*'''lang''' - язык ([https://cloud.yandex.ru/docs/speechkit/tts/voices список языков]).
*'''speed''' - скорость произнесения текста.
*'''voice''' - голос.
*'''emotion''' - эмоциональная окраска голоса.
Описание параметров на [https://cloud.yandex.ru/docs/speechkit/tts/request сайте Яндекс].
Если синтезируемый текст находится внутри тегов <speak>, текст передается в формате [https://cloud.yandex.ru/docs/speechkit/tts/markup/ssml SSML], иначе текст воспринимается как текст в [https://cloud.yandex.ru/docs/speechkit/tts/markup/tts-markup TTS-разметке].<br>
Различия в синтезе голоса между версиями [https://cloud.yandex.ru/docs/speechkit/tts/ API v1 и v3].
 
=== Параметры синтеза текста с использованием сервиса Yandex API v3 ===
*'''Service''' - сервис синтеза Yandex (Service=Yandex;API=v3;).
*'''Model''' - модель распознавания (пока не используется).
*'''Voice''' - голос ([https://cloud.yandex.ru/docs/speechkit/tts/voices список голосов]).
*'''Speed''' - скорость произнесения текста.
*'''Volume''' - громкость.
*'''Role''' - амплуа/эмоциональная окраска голоса/характер произношения. Допустимые параметры зависят от голоса ([https://cloud.yandex.ru/docs/speechkit/tts/voices список голосов и амплуа]).
*'''Pitch''' - смена высоты звука в Гц. Значения от -1000 до 1000 (по умолчанию 0).
*'''LoudnessNormalizationType''' - тип нормализации громкости:
**'''MAX_PEAK''' - пиковая нормализация, при которой уровень звукового сигнала поднимается до максимально возможного значения для цифрового звука без появления искажений.
**'''LUFS''' - взвешенная нормализация на основе стандарта EBU R128, в соответствии с которым нормализация громкости производится относительно цифровой полной шкалы (по умолчанию).
*'''IsUnsafeMode''' - позволяет использовать синтез текста более 250 символов за раз. Возможно некоторое снижение качества синтеза.
Описание параметров на [https://cloud.yandex.ru/docs/speechkit/tts-v3/api-ref/grpc/tts_service сайте Яндекса]. Текст воспринимается как текст в [https://cloud.yandex.ru/docs/speechkit/tts/markup/tts-markup TTS-разметке].<br>
Различия в синтезе голоса между версиями [https://cloud.yandex.ru/docs/speechkit/tts/ API v1 и v3].
 
=== Параметры синтеза текста с использованием сервиса Tinkoff ===
*'''Service''' - сервис синтеза Google (Service=Tinkoff;).
*'''Voice''' - голос ([https://software.tinkoff.ru/docs/voicekit/ttsvoices список голосов]).
*'''Speed''' - cкорость произношения. Задаётся в долях от естественной скорости произношения для конкретного голоса. Например, значение 0.5 - замедляет речь в два раза, 2 - ускоряет речь в 2 раза. Поддерживаются значения от 0.33 до 3 (по умолчанию - 1.0).
*'''Pitch''' - высота речи. Задаётся в долях от естественной высоты конкретного голоса. Например, значение 0.5 - понижает высоту голоса в 2 раза, 2 - повышает высоту голоса в 2 раза. Поддерживаются значения от 0.33 до 3 (по умолчанию - 1.0).
Описание параметров на [https://software.tinkoff.ru/docs/voicekit/synthesize#tinkoff.cloud.tts.v1.VoiceSelectionParams сайте Tinkoff].
Если синтезируемый текст находится внутри тегов <speak>, текст передается в формате [https://en.wikipedia.org/wiki/Speech_Synthesis_Markup_Language SSML], иначе текст воспринимается как текст без SSML-разметки, допускается пунктуация.


==Результат==
==Результат==
:Обьект Sound, содержащий синтезированное сообщение.  
:[[Объект_Sound|Объект Sound]], содержащий синтезированное сообщение.


==Описание==
==Описание==
Строка 20: Строка 55:


==Примеры==
==Примеры==
:Пример с использованием Yandex на JavaScript
<syntaxhighlight lang="javascript">
var Device = new ActiveXObject ("CallOffice.Device");
var NumberPhone = prompt ("Введите номер телефона",'');
Device.Open ();
var Sound = Device.TextToSound ("Привет, это программа CallOffice", "Service=Yandex; lang=ru-RU; speed=1; voice=zahar; emotion=neutral;"); // Синтезируем голос
var Result = Device.Dial (NumberPhone, 40);
if (Result == 0) {
  Device.Say (Sound);                                                      // Произносим синтезированное сообщение
}
Device.HangUp ();
Device.Close ();
</syntaxhighlight>
:Пример на JavaScript
:Пример на JavaScript
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
Строка 28: Строка 80:


Device.TTSEngine = "Microsoft Anna - English (United States)";              // Устанавливаем голосовую машину
Device.TTSEngine = "Microsoft Anna - English (United States)";              // Устанавливаем голосовую машину
var Sound = Device.TextToSound ("Hello, this is the program CallOffice!");   // Синтезируем сообщение
var Sound = Device.TextToSound ("Hello, this is the program CallOffice!"); // Синтезируем сообщение


var Result = Device.Dial (NumberPhone, 40);
var Result = Device.Dial (NumberPhone, 40);
if (Result == 0) {
if (Result == 0) {
   Device.Say (Sound);         // Произносим синтезированное сообщение
   Device.Say (Sound);                                                     // Произносим синтезированное сообщение
}
}
Device.HangUp ();
Device.HangUp ();
Device.Close ();
Device.Close ();
</syntaxhighlight>
:Пример с использованием Yandex на VBScript
<syntaxhighlight lang="vb">
Dim Device
Dim Sound
Set Device = CreateObject ("CallOffice.Device")
NumberPhone = prompt ("Введите номер телефона","")
Device.Open
Set Sound = Device.TextToSound ("Привет, это программа CallOffice", "Service=Yandex; lang=ru-RU; speed=1; voice=zahar; emotion=neutral;"); // Синтезируем голос
Result = Device.Dial (NumberPhone, 40)
if Result = 1 then
  Device.Say Sound                                                        ' Произносим синтезированное сообщение
end if
Device.HangUp
Device.Close
</syntaxhighlight>
</syntaxhighlight>


Строка 47: Строка 120:
Device.Open
Device.Open


Device.TTSEngine = "Microsoft Anna - English (United States)"         ' Устанавливаем голосовую машину
Device.TTSEngine = "Microsoft Anna - English (United States)"             ' Устанавливаем голосовую машину
Set Sound = Device.TextToSound ("Hello, this is the program CallOffice!")  ' Синтезируем сообщение
Set Sound = Device.TextToSound ("Hello, this is the program CallOffice!")  ' Синтезируем сообщение


Строка 53: Строка 126:


if Result = 1 then
if Result = 1 then
   Device.Say Sound           ' Произносим синтезированное сообщение
   Device.Say Sound                                                       ' Произносим синтезированное сообщение
end if
end if



Текущая версия на 09:36, 19 декабря 2023

Синтаксис

TextToSound (BSTR Text, BSTR Parameters)

Параметры

  • Text - текст синтезируемого сообщения.
  • Parameters - параметры синтеза текста.

Параметры синтеза текста с использованием сервиса Google

  • Service - сервис синтеза Google (Service=Google;).
  • Lang - язык.
  • Speed - скорость произнесения текста.
  • Voice - голос.
  • Emotion - эмоциональная окраска голоса.

Параметры синтеза текста с использованием сервиса Yandex API v1

  • Service - сервис синтеза Google (Service=Yandex;).
  • lang - язык (список языков).
  • speed - скорость произнесения текста.
  • voice - голос.
  • emotion - эмоциональная окраска голоса.

Описание параметров на сайте Яндекс. Если синтезируемый текст находится внутри тегов <speak>, текст передается в формате SSML, иначе текст воспринимается как текст в TTS-разметке.
Различия в синтезе голоса между версиями API v1 и v3.

Параметры синтеза текста с использованием сервиса Yandex API v3

  • Service - сервис синтеза Yandex (Service=Yandex;API=v3;).
  • Model - модель распознавания (пока не используется).
  • Voice - голос (список голосов).
  • Speed - скорость произнесения текста.
  • Volume - громкость.
  • Role - амплуа/эмоциональная окраска голоса/характер произношения. Допустимые параметры зависят от голоса (список голосов и амплуа).
  • Pitch - смена высоты звука в Гц. Значения от -1000 до 1000 (по умолчанию 0).
  • LoudnessNormalizationType - тип нормализации громкости:
    • MAX_PEAK - пиковая нормализация, при которой уровень звукового сигнала поднимается до максимально возможного значения для цифрового звука без появления искажений.
    • LUFS - взвешенная нормализация на основе стандарта EBU R128, в соответствии с которым нормализация громкости производится относительно цифровой полной шкалы (по умолчанию).
  • IsUnsafeMode - позволяет использовать синтез текста более 250 символов за раз. Возможно некоторое снижение качества синтеза.

Описание параметров на сайте Яндекса. Текст воспринимается как текст в TTS-разметке.
Различия в синтезе голоса между версиями API v1 и v3.

Параметры синтеза текста с использованием сервиса Tinkoff

  • Service - сервис синтеза Google (Service=Tinkoff;).
  • Voice - голос (список голосов).
  • Speed - cкорость произношения. Задаётся в долях от естественной скорости произношения для конкретного голоса. Например, значение 0.5 - замедляет речь в два раза, 2 - ускоряет речь в 2 раза. Поддерживаются значения от 0.33 до 3 (по умолчанию - 1.0).
  • Pitch - высота речи. Задаётся в долях от естественной высоты конкретного голоса. Например, значение 0.5 - понижает высоту голоса в 2 раза, 2 - повышает высоту голоса в 2 раза. Поддерживаются значения от 0.33 до 3 (по умолчанию - 1.0).

Описание параметров на сайте Tinkoff. Если синтезируемый текст находится внутри тегов <speak>, текст передается в формате SSML, иначе текст воспринимается как текст без SSML-разметки, допускается пунктуация.

Результат

Объект Sound, содержащий синтезированное сообщение.

Описание

Метод выполняет синтез текста в голосовое сообщения используя технологию Text To Speech (TTS). Голосовая машина используемая для синтеза определяется свойством TTSEngine.

Примеры

Пример с использованием Yandex на JavaScript
var Device = new ActiveXObject ("CallOffice.Device");
var NumberPhone = prompt ("Введите номер телефона",'');

Device.Open ();

var Sound = Device.TextToSound ("Привет, это программа CallOffice", "Service=Yandex; lang=ru-RU; speed=1; voice=zahar; emotion=neutral;"); // Синтезируем голос

var Result = Device.Dial (NumberPhone, 40);
if (Result == 0) {
   Device.Say (Sound);                                                      // Произносим синтезированное сообщение
}
Device.HangUp ();
Device.Close ();
Пример на JavaScript
var Device = new ActiveXObject ("CallOffice.Device");
var NumberPhone = prompt ("Введите номер телефона",'');

Device.Open ();

Device.TTSEngine = "Microsoft Anna - English (United States)";              // Устанавливаем голосовую машину
var Sound = Device.TextToSound ("Hello, this is the program CallOffice!");  // Синтезируем сообщение

var Result = Device.Dial (NumberPhone, 40);
if (Result == 0) {
   Device.Say (Sound);                                                      // Произносим синтезированное сообщение
}
Device.HangUp ();
Device.Close ();
Пример с использованием Yandex на VBScript
Dim Device
Dim Sound
Set Device = CreateObject ("CallOffice.Device")
NumberPhone = prompt ("Введите номер телефона","")

Device.Open

Set Sound = Device.TextToSound ("Привет, это программа CallOffice", "Service=Yandex; lang=ru-RU; speed=1; voice=zahar; emotion=neutral;"); // Синтезируем голос

Result = Device.Dial (NumberPhone, 40)

if Result = 1 then
   Device.Say Sound                                                        ' Произносим синтезированное сообщение
end if

Device.HangUp
Device.Close
Пример на VBScript
Dim Device
Dim Sound
Set Device = CreateObject ("CallOffice.Device")
NumberPhone = prompt ("Введите номер телефона","")

Device.Open

Device.TTSEngine = "Microsoft Anna - English (United States)"              ' Устанавливаем голосовую машину
Set Sound = Device.TextToSound ("Hello, this is the program CallOffice!")  ' Синтезируем сообщение

Result = Device.Dial (NumberPhone, 40)

if Result = 1 then
   Device.Say Sound                                                        ' Произносим синтезированное сообщение
end if

Device.HangUp
Device.Close

Назад к методам объекта Device.