UNPKG

umbot

Version:

Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф

103 lines (102 loc) 4.08 kB
import { ISound } from './interfaces'; import { TSoundProcessing } from '../../core'; import { BotController } from '../../controller'; /** * @class Sound * Класс для обработки и воспроизведения звуков в различных платформах. * * Основные возможности: * - Поддержка различных платформ (Алиса, Маруся, VK, Telegram, Viber) * - Использование стандартных и пользовательских звуков * - Встраивание звуков в текстовые сообщения * - Гибкая настройка звукового сопровождения * * Ограничения по платформам: * * Алиса: * - Аудиофайлы: MP3, до 1MB * - Длительность: до 30 секунд * - Стандартные звуки: <speaker audio="alice-xxx"> * - Синтез речи: SSML-разметка * * Маруся: * - Аудиофайлы: MP3, до 1MB * - Длительность: до 30 секунд * - Стандартные звуки: <speaker audio="marusia-xxx"> * - Синтез речи: SSML-разметка * * VK: * - Аудиофайлы: MP3, OGG, до 20MB * - Длительность: до 5 минут * - Голосовые сообщения: OGG (opus) * * Telegram: * - Аудиофайлы: MP3, M4A, до 50MB * - Длительность: без ограничений * - Голосовые сообщения: OGG (opus) * * Viber: * - Аудиофайлы: MP3, WAV, до 10MB * - Длительность: до 3 минут * * @example * ```ts * import { Sound } from './components/sound/Sound'; * * // Создание экземпляра * const sound = new Sound(); * * // Использование своих звуков * sound.sounds = [ * // Звук колокольчика * { * key: '#myKey#', * sounds: ['<speaker audio="alice-xxx">'] * }, * ]; * // Получение текста со звуками * const result = await sound.getSounds('Текст сообщения #myKey#'); * ``` */ export declare class Sound { /** * Массив звуков для воспроизведения. * Каждый элемент массива представляет собой объект с параметрами звука. */ sounds: ISound[]; /** * Флаг использования стандартных звуков. * Если true, используются стандартные звуки платформы. * Актуально для Алисы и Маруси. * * @default true * @example * ```ts * // Использовать стандартные звуки * sound.isUsedStandardSound = true; * * // Использовать только пользовательские звуки * sound.isUsedStandardSound = false; * ``` */ isUsedStandardSound: boolean; /** * Конструктор класса Sound. * Инициализирует пустой массив звуков и включает использование стандартных звуков. */ constructor(); /** * Получает текст с встроенными звуками для конкретной платформы. * * Процесс работы: * 1. Проверяет наличие текста * 2. Определяет тип приложения * 3. Создает соответствующий обработчик звуков * 4. Применяет звуки к тексту * * @param {string | null} text - Исходный текст для обработки * @param soundProcessing * @param controller */ getSounds<TResult = unknown>(text: string | null, soundProcessing: TSoundProcessing<TResult>, controller: BotController): Promise<TResult>; }