Ana içeriğe geç

Eşzamanlı Çeviri

Uzun süren konuşma çevirisi oturumu başlatın; parça parça kaynak metni, çevrilen metni, isteğe bağlı TTS sesini, olayları ve nihai raporu alın.

SimultaneousInterpretationEventType yaşam döngüsünün onEvent tarafından nasıl kullanıldığı için AI Oturum Olayları sayfasına bakın.

Animated workflow

Interpretation session lifecycle

Coordinate provider startup, the active audio source, ordered incremental results, interruption handling, and final shutdown.

Host app

Configure Languages

Set compatible source and target languages plus TTS and playback options.

AI service

Start Session

Start the provider-backed simultaneous interpretation service.

Host app

Retain Session

Store the returned session and inspect whether the AIBuds AI SDK records internally.

Host app + device

Provide Audio

When SDK internal recording is disabled, feed external PCM to the session; device recording is one possible source.

AI service → app

Stream Results

Order definite source and target segments and handle optional TTS audio.

incremental results
Host app

Handle Runtime Events

Process events, recoverable exceptions, and interruption-driven stops.

Device

Stop External Audio

If device recording is active, stop it before stopping interpretation.

AI service

Stop Interpretation

Request shutdown of the current simultaneous interpretation session.

Final callback

Finish Session

Consume the optional report and clear the retained active session.

A recoverable onException callback does not automatically mean the session has stopped.

Ön Koşullar

  • AIBudsAISDK başlatılmış, kayıtlı bir sağlayıcı seçilmiş ve doğrulanmıştır.
  • Sağlayıcı SimultaneousInterpretationServiceAPI desteği sunar.
  • Kaynak ve hedef dil tanımlayıcıları tireli biçimdedir ve birbirinden farklıdır.
  • AIBuds AI SDK dahili kaydı kapalıysa ana uygulama harici PCM sağlar. Ses bağlı aygıttan geliyorsa aygıt DeviceAudioRecordingAPI protokolüne uyar.

AI desteğiyle uygulayın

AI ile geliştirin

Bu iş akışını AI ile uygulayın

Resmî “AIBuds Simultane Çeviriyi Uygulama” becerisini kullanarak iş akışını uygulamanıza uyarlayın.

https://docs-aibuds.github.io/tr/skills/implement-aibuds-simultaneous-interpretation adresini okuyup yönergeleri izleyin. Bu beceriyle “AIBuds Simultane Çeviriyi Uygulama” iş akışını iOS projesinde uygulayıp doğrulayın.
Resmî beceriyi görüntüle

API Reference

Framework

AIBudsAI.xcframework

Import

Swift
import AIBuds
import AIBudsAI
import AIBudsAIFoundation

Declaration

Swift
/// Starts a simultaneous interpretation session.
/// - Parameters:
///   - config: The session configuration.
///   - onStartSuccess: Called with the started session.
///   - onStartFailure: Called when the session cannot start.
///   - onStopByInterruption: Called when an interruption stops the session.
///   - onException: Called for a recoverable session exception. The app decides
///     whether the session should stop.
///   - streamResultHandler: Called with incremental interpretation results.
///   - onEvent: Called for session-level events.
///   - onFinish: Called with the optional final report.
public static func startSimultaneousInterpretation(_ config: SimultaneousInterpretationConfig = .default,
                                             onStartSuccess: ((_ session: SimultaneousInterpretationSessionConvertible) -> Void)? = nil,
                                             onStartFailure: ((_ error: NSError) -> Void)? = nil,
                                       onStopByInterruption: ((_ error: NSError?) -> Void)? = nil,
                                                onException: ((_ error: NSError) -> Void)? = nil,
                                        streamResultHandler: ((
                                            _ isFinal: Bool,
                                            _ response: SimultaneousInterpretationDataModel?,
                                            _ error: Error?
                                        ) -> Void)? = nil,
                                                    onEvent: ((_ event: SimultaneousInterpretationEventModel) -> Void)? = nil,
                                                   onFinish: ((_ report: SimultaneousInterpretationReportModel?) -> Void)? = nil)

/// Stops the current simultaneous interpretation session.
public static func stopSimultaneousInterpretation()

startSimultaneousInterpretation ve stopSimultaneousInterpretation başvurularına bakın.

Yapılandırma

SimultaneousInterpretationConfig şu ayarları sunar:

ÖzellikVarsayılanAçıklama
sourceLanguageUygulama diliİsteğe bağlı kaynak dil; boş dize otomatik algılamayı etkinleştirir.
targetLanguageen-USGerekli hedef dil.
enableTTStrueÇevrilen konuşmanın seslendirilip seslendirilmeyeceği.
enableVoicePlaybacktrueOluşturulan sesin oynatılıp oynatılmayacağı.
usesInternalAudioRecordingtrueOturum sesinin AIBuds AI SDK tarafından kaydedilip kaydedilmeyeceği.
preferSpeakerOutputfalseHoparlör çıkışının tercih edilip edilmeyeceği.

usesInternalAudioRecording false olduğunda AIBuds AI SDK oturum sesini kaydetmez. Ana uygulama döndürülen oturumu saklamalı ve appendInt16PCM(_:isFinal:) veya appendAudioPCMBuffer(_:isFinal:) üzerinden harici PCM sağlamalıdır.

Kullanım Örnekleri

Swift
let config = SimultaneousInterpretationConfig.default
config.sourceLanguage = "zh-CN"
config.targetLanguage = "en-US"
config.usesInternalAudioRecording = true
config.preferSpeakerOutput = false

AIBudsAISDK.startSimultaneousInterpretation(
    config,
    onStartSuccess: { session in
        currentSession = session
    },
    onStartFailure: { error in
        print("Unable to start: \(error.localizedDescription)")
    },
    onStopByInterruption: { error in
        print(error?.localizedDescription ?? "Session interrupted")
        currentSession = nil
    },
    onException: { error in
        print("Session exception: \(error.localizedDescription)")
    },
    streamResultHandler: { isFinal, response, error in
        if let error {
            print(error.localizedDescription)
            return
        }
        guard let response else { return }

        if response.isSourceTextDefinite {
            print("Source: \(response.sourceText ?? "")")
        }
        if response.isTargetTextDefinite {
            print("Target: \(response.targetText ?? "")")
        }
        if isFinal { print("Final result") }
    },
    onEvent: { event in
        print(event)
    },
    onFinish: { report in
        currentSession = nil
        print(report ?? "No report")
    }
)

session.isRecordingInternally false olduğunda harici ses yolunu ana uygulama yönetir. Demo, onStartSuccess sonrasında aygıt tarafındaki AI kaydını başlatır, kodu çözülen her PCM grubunu session.appendInt16PCM(_:isFinal:) öğesine iletir, önce aygıt kaydını durdurur ve ardından AIBudsAISDK.stopSimultaneousInterpretation() çağırır.

Notlar

  • Etkin oturumu ve kayıt modunu izlemek için başlangıçta dönen SimultaneousInterpretationSessionConvertible öğesini saklayın.
  • onException oturumu mutlaka durdurmaz. Devam etmeye veya stopSimultaneousInterpretation() çağırmaya karar verin.
  • Her geri çağrıyı doğrudan eklemek yerine kesin parçaları sourceTextSequence ve targetTextSequence ile sıralayın.
  • TTS sesi SimultaneousInterpretationDataModel üzerinde göreli dosya, tam dosya yolu veya Base64 PCM verisi olarak sunulabilir.