Ми реалізуємо AI Voice Cloning в мобільних додатках
Клонування голосу (voice cloning) — технологія створення мовлення штучного інтелекту, що імітує конкретну людину. Клонування голосу мобільний додаток потребує інтеграції ElevenLabs, яка підтримує клонування голосу iOS та Android. Вона дозволяє додати в додаток кастомний голос — користувацький або персонажа. Клієнти часто стикаються з шумом у записі та неякісним клоном. Ми вирішуємо цю проблему, обираючи правильного провайдера та налаштовуючи процес запису. Розберемо техніку реалізації на прикладі ElevenLabs API — де-факто стандарту voice cloning. Команда має понад 5 років досвіду в mobile-розробці та виконала більш ніж 30 проєктів з інтеграцією AI-сервісів. Якщо ви хочете реалізувати клонування голосу у своєму додатку, отримайте консультацію наших інженерів.
Порівняння провайдерів voice cloning
| Провайдер | Мінімальне аудіо | Якість | Підтримка RU | Стрімінг |
|---|---|---|---|---|
| ElevenLabs | 1 хв (Instant) / 30 хв (Professional) | Висока | Так | Так |
| Resemble AI | 5 хв | Середня | Обмежено | Так |
| PlayHT | 5–10 сек | Нижча | Так | Ні |
ElevenLabs — де-факто стандарт. Для української/російської мови достатньо 2–5 хвилин чистої мови в 16-бітному WAV. Вартість підписки ElevenLabs — від $5 до $22 на місяць залежно від тарифу. Економія на дикторах може сягати 40% при регулярному синтезі. ElevenLabs в 2-3 рази кращий за Resemble AI за якістю синтезу.
Як забезпечити якість запису на пристрої?
Якість клону безпосередньо залежить від запису. Наші рекомендації:
| Параметр | Рекомендація |
|---|---|
| Частота дискретизації | 44100 Гц або 48000 Гц |
| Формат | WAV (PCM 16-bit) або FLAC |
| Мінімальна тривалість | 60 секунд (краще 3–5 хвилин) |
| SNR | > 20 дБ |
На iOS записуємо через AVAudioEngine з форматом pcmFormatFloat32, потім конвертуємо в WAV. У нашому прикладі клонування голосу Swift реалізовано на iOS:
func exportToWAV(pcmBuffer: AVAudioPCMBuffer, destinationURL: URL) throws {
let settings: [String: Any] = [
AVFormatIDKey: kAudioFormatLinearPCM,
AVSampleRateKey: 44100.0,
AVNumberOfChannelsKey: 1,
AVLinearPCMBitDepthKey: 16,
AVLinearPCMIsFloatKey: false,
AVLinearPCMIsBigEndianKey: false
]
let file = try AVAudioFile(forWriting: destinationURL, settings: settings)
try file.write(from: pcmBuffer)
}
На Android — AudioRecord з ENCODING_PCM_16BIT, 44100 Гц, запис у WAV з 44-байтним заголовком.
Завантаження голосу в ElevenLabs
Після запису аудіо завантажується multipart-запитом. Запис зразка голосу для створення голосової моделі вимагає якісного аудіо. TTS кастомний голос генерується через API.
func uploadVoice(audioURLs: [URL], name: String) async throws -> String {
var request = URLRequest(url: URL(string: "https://api.elevenlabs.io/v1/voices/add")!)
request.httpMethod = "POST"
request.setValue(apiKey, forHTTPHeaderField: "xi-api-key")
let boundary = UUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
var body = Data()
body.append("--\(boundary)\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\n\(name)\r\n".data(using: .utf8)!)
for (i, url) in audioURLs.enumerated() {
let audioData = try Data(contentsOf: url)
body.append("--\(boundary)\r\nContent-Disposition: form-data; name=\"files\"; filename=\"sample_\(i).wav\"\r\nContent-Type: audio/wav\r\n\r\n".data(using: .utf8)!)
body.append(audioData)
body.append("\r\n".data(using: .utf8)!)
}
body.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = body
let (data, _) = try await URLSession.shared.data(for: request)
let response = try JSONDecoder().decode(VoiceResponse.self, from: data)
return response.voice_id
}
voice_id зберігаємо в Keychain (iOS) або SharedPreferences (Android) — він потрібен для всіх TTS-запитів.
Управління голосовими профілями
Додаток повинен дозволяти:
- Створювати кілька голосових профілів (свій голос, голос персонажа, диктора).
- Перейменовувати та видаляти через
DELETE /v1/voices/{voice_id}. - Перевіряти якість: прослухати тестову фразу одразу після створення.
Локально зберігаємо voice_id та метадані. Після успішного завантаження аудіозразки можна видалити — вони є у провайдера.
Якщо вам потрібна кастомізація управління профілями, замовте розробку модуля.
Чому важливо отримати згоду користувача?
ElevenLabs вимагає підтвердження, що користувач клонує власний голос або має дозвіл. Реалізуємо чекбокс згоди та зберігаємо timestamp. App Store Review Guidelines 5.1.4 вимагають явної згоди на збір біометричних даних. Крім того, у юрисдикціях, що підпадають під GDPR, клонування голосу може вважатися обробкою біометричних даних — необхідне повідомлення та згода. Рекомендуємо консультуватися з юристом, але в більшості випадків достатньо інформованої згоди.
Покрокова інструкція з інтеграції
Розгорніть для деталей
- Підготовка запису: Налаштуйте
AVAudioSessionз частотою 44100 Гц на iOS,AudioRecordз 16-bit PCM на Android. Забезпечте мінімальний SNR > 20 дБ. - Завантаження зразка: Відправте WAV-файл через multipart-запит до ElevenLabs. Збережіть отриманий
voice_id. - Синтез мовлення: Використовуйте
voice_idу TTS-запитіPOST /v1/text-to-speech/{voice_id}. Передайте текст та налаштування стабільності/чіткості. - Відтворення: Отриманий аудіопотік (MP3) відтворіть через
AVAudioPlayerабоExoPlayer. - Кешування: Зберігайте згенеровані аудіофайли локально для повторного використання.
Що входить у нашу роботу
Ми постачаємо проєкт під ключ:
- Розробка екрану запису з waveform, індикацією гучності, шумозаглушенням.
- Інтеграція з ElevenLabs (або іншим провайдером) через REST/GraphQL.
- Управління голосовими профілями з локальним кешем.
- Синтез мовлення клонованим голосом через TTS API.
- Документація з налаштування push-сповіщень (APNs/FCM) для фонового завантаження аудіо.
- Тестування якості клону на реальних пристроях.
Досвід команди — понад п'ять років у mobile-розробці, десятки проєктів з інтеграцією AI-сервісів. На одному з проєктів для голосового асистента ми досягли якості клону, яку користувачі оцінили як «натуральний» у 92% випадків, що дозволило знизити витрати на професійних дикторів на 40%. Гарантуємо стабільну роботу відповідно до гайдлайнів App Store та Google Play. Якщо ви хочете отримати консультацію щодо вашого проєкту, зв'яжіться з нами — ми оцінимо терміни та бюджет індивідуально.
Типові помилки
- Запис через
AVAudioSessionбез явного вказанняpreferredSampleRate: 44100— система може обрати 16000 Гц, що погіршує клон. - Відправка нестисненого WAF (WAV) об'ємом ~30 МБ через мобільний інтернет — використовуйте фонове завантаження через
URLSession.background. - Ігнорування чекбоксів згоди — додаток може бути відхилено модерацією.
Терміни реалізації
Базова інтеграція (запис + завантаження + TTS) — 5–8 днів. Повний флоу з профілями, Recorder UI та тестуванням — 2–3 тижні. Оцінимо ваш проєкт безкоштовно — просто напишіть нам.







