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

AI-аудиозапись

Запускайте сессию AI-аудиозаписи, координируйте запись на подключённом устройстве, получайте распознанный текст и события в реальном времени, а затем итоговый отчёт.

Жизненный цикл AIAudioRecordingEventType, используемый этой моделью callbacks, описан в разделе «События AI-сессий».

Animated workflow

Жизненный цикл AI-аудиозаписи

Запускайте AI-сервис до аудиозаписи устройства, согласуйте оба жизненных цикла и завершайте процесс через callback итогового отчёта.

Приложение

Настроить сессию

Выбрать сценарий записи, язык, автономное поведение и диаризацию.

AI-сервис

Запустить AI-сервис

Сначала создать сессию AI-аудиозаписи у поставщика.

Приложение

Сохранить сессию

Хранить сессию из onStartSuccess в течение всего её жизненного цикла.

Устройство

Запустить аудио устройства

После успешного запуска сервиса запросить у устройства передачу записываемого аудио.

AI-сервис → приложение

Обрабатывать результаты

Показывать обновления текста и обрабатывать события или ошибки сессии.

текст + события
Устройство

Остановить аудио устройства

Остановить запись устройства, когда пользователь завершает сессию.

AI-сервис

Остановить AI-сервис

Остановить текущую сессию аудиозаписи AIBudsAISDK.

Завершающий callback

Получить итоговый отчёт

Обработать AIAudioRecordingReportModel, переданный в onFinish.

Приложение

Освободить сессию

Удалить сохранённую сессию и вернуть интерфейс в исходное состояние.

Ошибки запуска и ошибки уже работающей сессии передаются разными callbacks.

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

  • AIBudsAISDK инициализирован, и выбран зарегистрированный поставщик AI-сервисов.
  • При необходимости авторизация поставщика завершена.
  • Устройство подключено и соответствует DeviceAudioRecordingAPI.
  • Выбранный поставщик поддерживает AIAudioRecordingServiceAPI.

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

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

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

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

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

API Reference

Framework

AIBudsAI.xcframework

Import

Swift
import AIBuds
import AIBudsAI
import AIBudsAIFoundation

Declaration

Swift
/// Starts an AI audio recording session.
/// - Parameters:
///   - config: The session configuration.
///   - onStartSuccess: Called with the started session.
///   - onStartFailure: Called when the session cannot start.
///   - onTranscript: Called when speech is transcribed.
///   - onEvent: Called for session-level events.
///   - onError: Called when the running session encounters an error.
///   - onFinish: Called with the completed session report.
public static func startAIAudioRecording(_ config: AIAudioRecordingSessionConfig = .default,
                                   onStartSuccess: ((_ session: AIAudioRecordingSessionConvertible) -> Void)? = nil,
                                   onStartFailure: ((_ error: Error) -> Void)? = nil,
                                     onTranscript: ((_ transcriptData: StreamSpeechASRModel) -> Void)? = nil,
                                          onEvent: ((_ event: AIAudioRecordingEventModel) -> Void)? = nil,
                                          onError: ((_ error: NSError) -> Void)? = nil,
                                         onFinish: ((_ report: AIAudioRecordingReportModel) -> Void)? = nil) -> Void

/// Stops the current AI audio recording service session.
public static func stopAIAudioRecording()

См. startAIAudioRecording и stopAIAudioRecording.

Конфигурация

AIAudioRecordingSessionConfig предоставляет:

СвойствоОписание
recordingSceneСценарий записи, например .onSite.
allowRecordingWhileOfflineМожно ли запускать сервис без сети. По умолчанию false.
enableSpeakerDiarizationВключена ли диаризация говорящих. По умолчанию false.
languageForSpeechInputНеобязательный идентификатор языка речи. Если не задан, SDK использует язык приложения.

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

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

Swift
let config = AIAudioRecordingSessionConfig(
    recordingScene: .onSite,
    allowRecordingWhileOffline: true,
    enableSpeakerDiarization: true,
    languageForSpeechInput: "en-US"
)

AIBudsAISDK.startAIAudioRecording(
    config,
    onStartSuccess: { session in
        currentSession = session

        guard let recordingDevice = device as? DeviceAudioRecordingAPI else {
            AIBudsAISDK.stopAIAudioRecording()
            return
        }

        recordingDevice.startAIAudioRecording(.onSite) { success, error in
            if !success {
                print(error?.localizedDescription ?? "Device recording failed")
                AIBudsAISDK.stopAIAudioRecording()
            }
        }
    },
    onStartFailure: { error in
        print("Session start failed: \(error)")
    },
    onTranscript: { transcript in
        print(transcript.transcript ?? "")
    },
    onEvent: { event in
        print(event)
    },
    onError: { error in
        print(error.localizedDescription)
    },
    onFinish: { report in
        currentSession = nil
        print(report)
    }
)

Для остановки вызовите stopAIAudioRecording(_:completion:) подключённого устройства, удалите сохранённую сессию, а затем вызовите AIBudsAISDK.stopAIAudioRecording().

Примечания

  • Завершающий callback возвращает AIAudioRecordingReportModel, а не путь к локальному файлу записи.
  • Сохраняйте сессию из onStartSuccess до завершения операции.
  • onStartFailure сообщает об ошибках запуска, а onError — об ошибках после начала сессии.
  • SDK не предоставляет метод isRecording() для этого AI-сервиса. Отслеживайте сохранённую сессию в состоянии приложения.