junkerstock
 翻訳テスト01 

<!DOCTYPE html>
<html lang="ja">
<!--

現在 試験運用中のAPIを使用するため、コードを動かす前にChromeの設定(フラグ)を変更する必要があります。

準備:Chromeの設定を変更する
ブラウザのURL欄に以下をコピー&ペーストして、それぞれの設定を [Enabled] に変更し、Chromeを再起動してください。

chrome://flags/#translation-api → Enabled

chrome://flags/#optimization-guide-on-device-model → Enabled Bypass...(またはEnabled)

chrome://components/ を開き、「Optimization Guide On Device Model」の項目を探して [アップデートを確認] を押し、最新の状態にします。

-->
<head>
<meta charset="UTF-8">
<title>AI音声通訳アプリ(Chrome Built-in AI)</title>
<style>
body { font-family: sans-serif; display: flex; flex-direction: column; align-items: center; padding: 20px; }
.box { width: 80%; border: 1px solid #ccc; padding: 15px; margin: 10px; border-radius: 8px; }
#status { color: blue; font-weight: bold; }
button { padding: 10px 20px; font-size: 1.2rem; cursor: pointer; background: #4285f4; color: white; border: none; border-radius: 5px; }
</style>
</head>
<body>
<h1>AI音声通訳アプリ</h1>
<p id="status">AIの準備を確認中...</p>
<button id="startBtn">話し始める (日本語 → 英語)</button>

<div class="box">
<strong>聞き取り(日):</strong>
<p id="speechResult">...</p>
</div>
<div class="box">
<strong>翻訳結果(英):</strong>
<p id="translatedResult">...</p>
</div>

<script>
const startBtn = document.getElementById('startBtn');
const status = document.getElementById('status');
const speechResult = document.getElementById('speechResult');
const translatedResult = document.getElementById('translatedResult');

// 1. Translator APIの準備
let translator;
async function initAI() {
if (!window.translation || !window.translation.createTranslator) {
status.innerText = "❌ このブラウザはTranslator APIをサポートしていません。設定を確認してください。";
return;
}
try {
// 日本語から英語への翻訳機を作成
translator = await translation.createTranslator({
sourceLanguage: 'ja',
targetLanguage: 'en'
});
status.innerText = "✅ AI準備完了。マイクで喋ってください。";
} catch (e) {
status.innerText = "❌ モデルの準備中です... 少し待ってから再読み込みしてください。";
}
}
initAI();

// 2. 音声認識 (SpeechRecognition)
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
const recognition = new SpeechRecognition();
recognition.lang = 'ja-JP';

startBtn.onclick = () => {
recognition.start();
status.innerText = "🎤 聞き取り中...";
};

recognition.onresult = async (event) => {
const text = event.results[0][0].transcript;
speechResult.innerText = text;
status.innerText = "🔄 翻訳中...";

// 3. AIで翻訳
try {
const translated = await translator.translate(text);
translatedResult.innerText = translated;

// 4. 音声読み上げ (SpeechSynthesis)
const utterance = new SpeechSynthesisUtterance(translated);
utterance.lang = 'en-US'; // 英語で読み上げ
window.speechSynthesis.speak(utterance);

status.innerText = "✅ 完了!";
} catch (err) {
translatedResult.innerText = "翻訳エラー: " + err;
}
};
</script>
</body>
</html>


使用変数

charset
class
id
initAI -------( Function )
innerText
lang
onclick
onresult
recognition
SpeechRecognition
speechResult
startBtn
status
text
translated
translatedResult
translator
utterance

Content-type: text/html error-smemo8

ERROR !

ファイルの差し替えに失敗しました: ./smemo8.log