Перейти к основному содержимому

Синтез речи

Синтезируйте текст через выбранного поставщика AI-сервисов и получайте локальный аудиофайл для воспроизведения или дальнейшей обработки приложением.

Предварительные условия

  • AIBudsAISDK инициализирован, и выбран зарегистрированный поставщик.
  • Поставщик поддерживает TTSServiceAPI.
  • При необходимости доступны авторизация поставщика и сетевое подключение.
  • Согласно контракту публичного SDK запускайте синтез в фоновом потоке.

Реализация с помощью AI

Разработка с AI

Реализуйте этот сценарий с AI

Используйте официальный навык «Реализация синтеза речи AIBuds» и адаптируйте сценарий к приложению.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/implement-aibuds-text-to-speech. Используйте этот навык, чтобы реализовать «Реализация синтеза речи AIBuds» в данном iOS-проекте и проверить результат.
Открыть официальный навык

API Reference

Framework

AIBudsAI.xcframework

Import

Swift
import AIBudsAI
import AIBudsAIFoundation

Declaration

Swift
/// Synthesizes text into speech.
/// - Parameters:
///   - text: The text to synthesize.
///   - config: The synthesis configuration.
///   - completion: Called with the task identifier, success state, optional
///     result, and optional error when synthesis completes.
/// - Important: Call this method from a background thread to avoid blocking
///   the main thread.
public static func synthesizeText(_ text: String,
                                  config: TTSConfig = .default,
                              completion: ((
                                  _ taskId: String?,
                                  _ success: Bool,
                                  _ response: TTSResultModel?,
                                  _ error: NSError?
                              ) -> Void)? = nil) -> Void

См. synthesizeText.

Конфигурация и результат

TTSConfig предоставляет необязательный speakerId. При значении nil поставщик выбирает голос по умолчанию.

При успешном выполнении TTSResultModel содержит:

СвойствоОписание
audioFileПуть к аудиофайлу относительно каталога Documents приложения.
audioFilePathПолный путь к синтезированному аудиофайлу.
audioFormatФормат синтезированного аудиофайла.

Примеры использования

Swift
let config = TTSConfig.default
config.speakerId = nil

DispatchQueue.global(qos: .userInitiated).async {
    AIBudsAISDK.synthesizeText(
        "Hello, how can I help you?",
        config: config
    ) { taskId, success, response, error in
        guard success, let response else {
            print(error?.localizedDescription ?? "Synthesis failed")
            return
        }

        print("Task: \(taskId ?? "Unavailable")")
        print("Audio: \(response.audioFilePath)")

        DispatchQueue.main.async {
            playAudio(atPath: response.audioFilePath)
        }
    }
}

Примечания

  • Этот API создаёт файл, но не запускает воспроизведение на устройстве и не предоставляет stopSpeaking() или isSpeaking().
  • Оценивайте success, response и error совместно. Успешная операция требует success == true и значения response, отличного от nil.
  • Идентификаторы голосов зависят от поставщика. Задавайте только идентификатор, документированный выбранным поставщиком.
  • Обновляйте интерфейс и аудиоплеер в главном потоке.