umbot
Version:
Мультиплатформенный фреймворк для создания голосовых навыков и чат-ботов с единой бизнес-логикой. Встроенная поддержка ВКонтакте, Telegram, Viber, MAX, Яндекс Алисы, Маруси и Сбера SmartApp. Архитектура на адаптерах позволяет подключать любые другие платф
103 lines (102 loc) • 4.08 kB
TypeScript
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>;
}