メインコンテンツまでスキップ

AI テキスト翻訳

テキストを元の言語から対象言語へ翻訳し、翻訳結果を逐次受け取ります。

前提条件

  • AIBudsAISDK が初期化済みで、登録済みのプロバイダーが選択されていること。
  • プロバイダーが AITextTranslationServiceAPI に対応していること。
  • 入力テキストと対象言語が空ではないこと。
  • 言語識別子には zh-CNen-US のようなハイフン区切り形式を使用します。元の言語を空にすると自動判定が有効になります。

AI を活用して実装

AI で実装

AI でこのワークフローを実装

公式の「AIBuds テキスト翻訳の実装」スキルを使い、アプリに合わせて実装します。

https://docs-aibuds.github.io/ja/skills/implement-aibuds-text-translation を読み、その指示に従ってください。このスキルで「AIBuds テキスト翻訳の実装」をこの iOS プロジェクトに実装し、検証してください。
公式スキルを見る

API リファレンス

フレームワーク

AIBudsAI.xcframework

インポート

Swift
import AIBudsAI

宣言

Swift
/// Translates text from one language to another.
/// - Parameters:
///   - text: The text to translate.
///   - sourceLanguage: Source language code. An empty string enables auto-detect.
///   - targetLanguage: Target language code.
///   - streamResultHandler: Called repeatedly with translation results.
///     - isFinal: `true` when translation is complete.
///     - transcript: The current incremental translated text.
///     - error: The translation error, or `nil` on success.
public static func translateText(_ text: String,
                    from sourceLanguage: String,
                      to targetLanguage: String,
                    streamResultHandler: ((_ isFinal: Bool, _ transcript: String?, _ error: Error?) -> Void)? = nil)

/// Cancels the current text translation operation.
public static func cancelTextTranslation()

translateTextcancelTextTranslation を参照してください。

使用例

Swift
AIBudsAISDK.translateText(
    "你好,欢迎使用 AIBuds SDK。",
    from: "zh-CN",
    to: "en-US"
) { isFinal, transcript, error in
    DispatchQueue.main.async {
        if let error {
            translationLabel.text = error.localizedDescription
            return
        }

        if let transcript {
            translationLabel.text = transcript
        }

        translateButton.isEnabled = isFinal
    }
}

注意事項

  • 元の言語と対象言語に同じ値を明示指定しないでください。自動判定が必要な場合は元の言語を空文字列にします。
  • 翻訳結果は逐次更新され、前回表示した内容を置き換える場合があります。
  • この API はテキストのみを翻訳します。連続した音声翻訳には同時通訳を使用してください。
  • cancelTextTranslation() には完了コールバックがありません。キャンセルを要求した時点でアプリ側の状態を更新してください。