ドキュメント作成の準備
This commit is contained in:
@@ -121,17 +121,43 @@ Amazon の `/api/behaviors/preview` エンドポイントが、
|
||||
|
||||
---
|
||||
|
||||
## 次に試すべきこと
|
||||
## 試行ログ続き(2026-03-03 午後)
|
||||
|
||||
- [ ] `auth4.js` で Cookie を新規取得してテスト(セッションリセット)
|
||||
- [ ] `/api/behaviors/preview` 以外のエンドポイントを探す(例: `/api/ap/d-notification`など)
|
||||
- [ ] `Alexa.TextCommand` ノードタイプ(「テキストで命令を送る」別ルート)
|
||||
- [ ] ローカルブリッジ方式(ローカルPCをプロキシにしてAmazonにリクエストを転送する)
|
||||
- [ ] alexa-cookie / alexa-remote2 のソースコードから別APIを調査する
|
||||
#### Cookie 新規取得(auth4.js 再実行)
|
||||
→ 変化なし。Cookie は原因ではなかった。
|
||||
|
||||
#### ❌ `AlexaAnnouncement` ノードタイプ
|
||||
→ 「えんえせんと」("AlexaAnnouncement" を日本語で読んだ)。コンテンツではなくノード名が読まれた。別用途のノード。
|
||||
|
||||
#### ✅ **解決!** `sequenceJson` の non-ASCII を `\uXXXX` エスケープに変換
|
||||
|
||||
```javascript
|
||||
var rawSequenceJson = JSON.stringify(sequenceObj).replace(
|
||||
/[\u0080-\uffff]/g,
|
||||
function(c) { return '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4); }
|
||||
);
|
||||
```
|
||||
|
||||
→ 「これは日本語のテストです」が完璧に発話された!
|
||||
|
||||
---
|
||||
|
||||
## ✅ 解決済み(2026-03-03)
|
||||
|
||||
**根本原因**: `sequenceJson` 内の日本語文字を raw UTF-8 のまま Amazon に送ると、Amazon 側のパーサーがそれをフィルタリングして無視する。
|
||||
|
||||
**解決策**: `JSON.stringify(sequenceObj)` 後に non-ASCII 文字(`\u0080` 以上)を `\uXXXX` 形式のJSONエスケープシーケンスに変換してから `sequenceJson` として送る。
|
||||
|
||||
**修正箇所**: `alexa-api/server.js` と `alexa-api/test_tts.js`
|
||||
|
||||
**確定したパラメータ**:
|
||||
- `type: 'Alexa.Speak'`
|
||||
- `locale: 'ja-JP'`
|
||||
- `textToSpeak: <日本語テキスト>`
|
||||
- `sequenceJson` は non-ASCII を `\uXXXX` エスケープして送る
|
||||
|
||||
---
|
||||
|
||||
## 参考
|
||||
|
||||
- 実装記録: `docs/alexa-api/10_Alexa TTS API 実装記録 (2026-03-02).md`
|
||||
- 上記ファイルに記録されていた未解決事項がこのファイルに続く
|
||||
|
||||
Reference in New Issue
Block a user