AI テキスト翻訳
テキストを元の言語から対象言語へ翻訳し、翻訳結果を逐次受け取ります。
前提条件
AIBudsAISDKが初期化済みで、登録済みのプロバイダーが選択されていること。- プロバイダーが
AITextTranslationServiceAPIに対応していること。 - 入力テキストと対象言語が空ではないこと。
- 言語識別子には
zh-CNやen-USのようなハイフン区切り形式を使用します。元の言語を空にすると自動判定が有効になります。
AI を活用して実装
AI で実装
AI でこのワークフローを実装
公式の「AIBuds テキスト翻訳の実装」スキルを使い、アプリに合わせて実装します。
https://docs-aibuds.github.io/ja/skills/implement-aibuds-text-translation を読み、その指示に従ってください。このスキルで「AIBuds テキスト翻訳の実装」をこの iOS プロジェクトに実装し、検証してください。API リファレンス
フレームワーク
AIBudsAI.xcframework
インポート
- Swift
- Objective-C
import AIBudsAI#import <AIBudsAI/AIBudsAI-Swift.h>宣言
- Swift
- Objective-C
/// 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()/// 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: `YES` when translation is complete.
/// - transcript: The current incremental translated text.
/// - error: The translation error, or `nil` on success.
+ (void)translateText:(NSString * _Nonnull)text
from:(NSString * _Nonnull)sourceLanguage
to:(NSString * _Nonnull)targetLanguage
streamResultHandler:(void (^ _Nullable)(BOOL, NSString * _Nullable, NSError * _Nullable))streamResultHandler;
/// Cancels the current text translation operation.
+ (void)cancelTextTranslation;translateText と cancelTextTranslation を参照してください。
使用例
- Swift
- Objective-C
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
}
}[AIBudsAISDK translateText:@"你好,欢迎使用 AIBuds SDK。"
from:@"zh-CN"
to:@"en-US"
streamResultHandler:^(BOOL isFinal, NSString *transcript, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
if (error != nil) {
self.translationLabel.text = error.localizedDescription;
return;
}
if (transcript != nil) {
self.translationLabel.text = transcript;
}
self.translateButton.enabled = isFinal;
});
}];注意事項
- 元の言語と対象言語に同じ値を明示指定しないでください。自動判定が必要な場合は元の言語を空文字列にします。
- 翻訳結果は逐次更新され、前回表示した内容を置き換える場合があります。
- この API はテキストのみを翻訳します。連続した音声翻訳には同時通訳を使用してください。
cancelTextTranslation()には完了コールバックがありません。キャンセルを要求した時点でアプリ側の状態を更新してください。