86 × 54 × 3.2 mm、30 g、録音20〜24時間。オープンなBluetoothプロトコル、参考コード付き。
Bluetoothプロトコルのすべてを、参考コード一式とともにお渡しします。文字起こし、保存、検索のレイヤーは、貴社の事業に合わせて自由に作り込み、録音を貴社のナレッジベースに直接ストリーミングできます。弊社の役割は、音を忠実に捉えることです。
デバイスにあるのは開始と停止だけです。音声はBluetoothで返され、文字起こしの方法、保存先、入れるナレッジベースは、貴社のコードが決めます。
録音はBluetooth LEで、カードからスマートフォンへ約30 KB/sで転送され、1時間の録音が約4分で届きます。弊社のAndroid参考アプリは、実機上でのすべての手順を動作する形でお見せするため、貴社のチームはプロトコル文書ではなく、動作するコードから開発を始められます。
実機のスマートフォンで2分間:接続、リアルタイム速度付きのダウンロード、切断後の再開、音声のテキスト化、再生、削除。
同じデモを、スマートフォン向けの縦長形式で。
Android 9のスマートフォンで、CB08サンプル、ファームウェアV1.0.0を使って測定。お使いのスマートフォンとファームウェアでは、速度が異なる場合があります。
AndroidのフルソースコードにはサードパーティライブラリのないプレーンなJavaを使用しており、BLEプロトコル文書とともに、サンプル注文に同梱して提供します。
プロトコル文書とAndroidのソースは、サンプル注文に付属します。ODM、ホワイトラベル、オンプレミス導入は、別途お見積りします。
GATTのメインサービスは0xAE20、書き込みは0xAE21、通知は0xAE22。コマンド一覧、ファイル転送、セルフチェックは、サンプル注文に同梱するプロトコル文書に記載しています。
アップロード、取り込み、取得、質問。4つのエンドポイントで完結します。ハードウェアとプロトコルだけを導入し、文字起こしを独自のASRに向けることもできます。
受信と文字起こしのレイヤーは、すべて貴社のサーバールーム内で動作でき、音声がネットワークの外に出ることはありません。会議、相談、授業では、通常これが求められます。




以下はすべて、出荷実績のあるユニットで測定した値であり、ベンダーのデータシートからの転記ではありません。弊社の測定結果がチップベンダーの文書と食い違う場合は、その旨を明記し、実際に観測した数値を記載しています。サンプルをお手元に届いたあと、貴社のエンジニアが、すべての行を実機で確認できます。
プライマリサービスが1つ、書き込み特性が1つ、通知特性が2つ。応答、音声、ファイルデータは0xAE22を共有し、キーと録音状態のイベントは0xAE23に分離しているため、2つのストリームが互いの未完フレームを壊すことはありません。
| UUID | プロパティ | 用途 |
|---|---|---|
| 0xAE20 | Primary Service | メインサービス |
| 0xAE21 | WRITE_WITHOUT_RESPONSE | アプリ → デバイス |
| 0xAE22 | NOTIFY | 応答、音声、ファイルリスト、ファイルデータ |
| 0xAE23 | NOTIFY | キーイベント、録音状態 |
コマンドは TYPE-CMD の組です。リアルタイムストリーミングと分割ダウンロードを含む全体の表は、サンプル注文に同梱するプロトコル文書に記載しています。ここには、連携で最初に必要になるものを示します。
| TYPE-CMD | 名称 | パラメータ / 応答 |
|---|---|---|
| 0-0 | 時刻の同期 | 年 2B LE + 月/日/時/分/秒 各1B |
| 0-1 / 0-2 | ストレージの取得 / 応答 | 残量 4B LE + 合計 4B LE。 単位は1 KB、ベンダー文書に記載の8 KBブロックではありません |
| 0-3 / 0-4 | バッテリーの取得 / 応答 | 1B、0〜100。110は充電中 |
| 0-10 / 0-11 | ファームウェアの取得 / 応答 | 6B ASCII(例: V1.0.0) |
| 2-0 / 2-1 | ファイルリストの取得 / 応答 | 件数 4B BE + N×28Bのエントリ。複数の通知にまたがる場合があります |
| 2-2 | ダウンロード要求 | オフセット 4B LE + ファイル名 24B — 36バイトの単一のGATT書き込みで送る必要があります |
| 2-3 / 2-4 / 2-5 | 開始 / データ / 終了 | 終了コード 0=正常、1=見つからない、2=オフセットが大きすぎる、3=その他 |
| 2-8 / 2-13 | 1件削除 / 確認応答 | 2-2と同じアドレス指定、拡張子は復元。確認応答は1B、0=正常 |
| 1-0 / 1-1 / 1-2 | リアルタイム開始 / 音声 / 停止 | デバイスがファイル名を送り、続いて固定40バイトのOPUSパケットを送ります |
発見までに実際に時間を要した6つの点です。何も知らないまま遭遇した連携担当者は、ハードウェアが壊れていると考えてしまうため、公開しています。
デバイスは内部に、約16 kbpsのOPUSで保存しています。.wavを要求しても、すでに非可逆のその音声を256 kbpsのPCMにデコードするだけで、音質は向上せず、データ量は約16×になります。Androidの参考アプリでは、1時間の録音(OPUSで約7.2 MB)が約4分でスマートフォンに届き、30.7 KB/sを実測しています。
リアルタイムストリームも、デバイスから取り出したファイルも、コンテナのない固定40バイトのOPUSパケットです。保存する前に、Oggで包む必要があります。OggのCRC-32は非反転で、最終XORがありません。zlibのものとは異なります。間違えると、Oggに見えるファイルができてしまい、すべてのプレーヤーが何も言わずに再生を拒否します。テストベクター: oggCrc("123456789") == 0x89A1897F.
2-2のダウンロード要求は36バイトで、単一のGATT書き込みとして送る必要があります。Androidでは1回の書き込みがMTU−3で、デフォルトのMTU 23では20バイトしか送れないため、ファイル名が切り詰められ、デバイスは「ファイルが見つからない」と応答します。必ず requestMtu(≥39) が成功するよう要求し、失敗したら明確にエラーにしてください。ベストエフォートのフォールバックでは、わかりにくいエラーが出るだけです。
ベンダー文書には、0-2が8 KBブロックを返すと記載されています。実際には1 KB単位で返されます。8 KBとして扱うと容量が8倍に膨らみ、バイトとして扱うと1024分の1に縮みます。どちらもエラーにはならず、ただ不合理な数字が表示されるだけです。検証済みのユニットは、利用可能29.1 GBのうち28.8を報告します。
28バイトのリストの各エントリにある4バイトのフィールドは、時刻ではなく録音時間(長さ)です。時刻を得られる唯一の情報源は、ファイル名そのものです — note20260830-014512 または call20260830-014512。これを解析して新しい順に並べ、プレフィックスで環境音の録音と通話を区別します。
AppleはiOSのすべてのブラウザでこれをブロックしています。ChromeもiOS上では内部がWebKitであるため、例外ではありません。これはOSの制限であり、回避策はありません。iPhoneアプリは、ネイティブのCoreBluetoothを使う必要があります。
骨伝導マイクは、実機に触れた人でも誤解しやすい部品です。装着者の頭蓋骨の音を拾うわけではありません。スマートフォンの背面に当てて、受話口の振動を拾います。エアマイクでは、スピーカーフォンではない通話の相手側の声は聞こえないためです。
この結果は、このハードウェアの最も有用な点です。通話モードでは、エアマイクが実質的に近い側の話者、振動マイクが通話相手となり、2つの声は 物理的に、ソフトウェアが動作する前から分離されます。各チャンネルを文字起こしし、エネルギー差でセグメントを割り当てれば、声紋モデルなしでも、ほぼ完璧に話者を特定できます。モノラル録音では、エンジンの diarization_enabledにフォールバックしますが、これはモノラルにのみ適用され、声の特徴から推測します。
8つのエンドポイントです。ハードウェアとプロトコルだけを導入し、文字起こしを独自のASRに向けて、実行時に弊社を呼び出さないこともできます。
| エンドポイント | 用途 |
|---|---|
| POST /rec/v1/upload | 音声ファイルをアップロード |
| POST /rec/v1/ingest | 文字起こしに送信 |
| GET /rec/v1/item/{id} | 文字起こし、要約、アクションアイテム |
| POST /rec/v1/ask | 録音について質問する |
| GET /rec/v1/list | 録音の一覧 |
| POST /rec/v1/item/{id}/speakers | 話者名の変更 — 再レンダリングのみ。再文字起こしなし、追加料金なし |
| POST /rec/v1/retranscribe/{id} | 別のASRエンジンで再実行 |
| POST /rec/t/{key}/search | 音声アシスタント向けのプラグインエンドポイント。常にHTTP 200を返し、読み上げ可能な1文を返します |
受信と文字起こしのレイヤーは、すべて貴社のネットワーク内で動作し、音声が外に出ることはありません。要求は高くありません。GPUサーバーではなく、小型のファンレスボックスです。
| 項目 | 要件 |
|---|---|
| CPU | Intel N97 / N100 / N150。性能差は10%以内で、悩むほどの違いはありません |
| RAM | 8 GB。実測のピークは797 MBで、16 GBは過剰です |
| ディスク | モデルが268 MB、加えて顧客データ |
| スループット | 約4×リアルタイム — 27秒の音声を6.5秒で文字起こし |
すべてのコンポーネントは、商用での再配布が許可されています。GeoNamesのみ、フッターへの帰属表示が必要で、その他は不要です。
| コンポーネント | ライセンス |
|---|---|
| sherpa-onnx (ASR), RapidOCR | Apache-2.0 |
| cndoc, anydoc, pdf-inspector, pdfplumber | MIT |
| pypdfium2 | BSD-3 |
| GeoNames 地名データベース | CC BY 4.0 — フッターへの帰属表示が必要 |
いいえ。Bluetoothプロトコル文書とAndroid参考アプリのソースコードは、サンプル注文に同梱して出荷します。文字起こしは、独自のASR、サードパーティのサービス、オンプレミスのインスタンスのいずれにも向けられ、実行時に弊社のサーバーを呼び出すことはありません。
はい。受信と文字起こしのレイヤーは貴社のサーバー上で動作し、音声が弊社を経由することはありません。RAM 8 GBのIntel N97またはN100のボックスで、約4×リアルタイムで文字起こしでき、会議、相談、授業には十分です。
通話モードでは、はい。声紋モデルなしで機能します。エアマイクと骨伝導マイクが、物理的に2人の話者を別々のチャンネルで収音します。モノラルの環境音の録音は、アルゴリズムによる話者分離にフォールバックしますが、信頼性は下がります。
1,000個が標準です。既存の金型と弊社のパッケージを使う場合は、それより少ない数量も協議できます。在庫品の最短のサンプル納期は72時間です。
iOSでは、CoreBluetoothを使うネイティブアプリが必要です。AppleがiOS上のすべてのブラウザでWeb Bluetoothをブロックしているためです。プロトコルは同じで、違うのは通信APIだけです。弊社でアプリを開発することも、プロトコルを貴社のチームにお渡しすることもできます。
はい、動画で。レコーダーと実機のスマートフォンで動作するAndroid参考アプリの、2分間のデモがあります。1時間の録音は、約4分でスマートフォンに届きます(30.7 KB/sで3分49秒を実測)。AndroidのソースコードとBLEプロトコル文書は、サンプル注文に同梱します。
上記の数値はすべて実測であり、すべての記載は実機で検証できます。リアルタイムストリーミング、分割ダウンロード、フィールドノートの完全な表を含むプロトコルの全文は、サンプル注文に同梱するプロトコル文書に記載しています。
いいえ。Bluetoothプロトコル文書とAndroid参考アプリのソースコードは、サンプル注文に同梱して出荷します。文字起こしは、独自のASR、サードパーティのサービス、オンプレミスのインスタンスのいずれにも向けられ、実行時に弊社のサーバーを呼び出すことはありません。
はい。受信と文字起こしのレイヤーは貴社のサーバー上で動作し、音声が弊社を経由することはありません。RAM 8 GBのIntel N97またはN100のボックスで、約4×リアルタイムで文字起こしでき、会議、相談、授業には十分です。
通話モードでは、はい。声紋モデルなしで、エアマイクと骨伝導マイクが、物理的に2人の話者を別々のチャンネルで収音します。モノラルの環境音の録音は、アルゴリズムによる話者分離にフォールバックしますが、信頼性は下がります。
1,000個が標準です。既存の金型と弊社のパッケージを使う場合は、それより少ない数量も協議できます。在庫品の最短のサンプル納期は72時間です。
iOSでは、CoreBluetoothを使うネイティブアプリが必要です。AppleがiOS上のすべてのブラウザでWeb Bluetoothをブロックしているためです。プロトコルは同じで、違うのは通信APIだけです。弊社でアプリを開発することも、プロトコルを貴社のチームにお渡しすることもできます。
はい、動画で。レコーダーと実機のスマートフォンで動作するAndroid参考アプリの、2分間のデモがあります。1時間の録音は、約4分でスマートフォンに届きます(30.7 KB/sで3分49秒を実測)。AndroidのソースコードとBLEプロトコル文書は、サンプル注文に同梱します。
400mAhのセルをマグネット式USBコネクターで充電し、連続録音25時間、スタンバイ15日間です。
全指向性マイク2基と骨伝導マイク1基で、会議室、診察室、教室でもクリアな音を保ちます。
86 × 54 × 3.2 mmと銀行カードと同じ面積で、アルミ一体型の本体は約28グラムです。レザースリーブと組み合わせて使います。0.42インチのモノクロ画面に、時刻、バッテリー、録音状態を表示します。
筐体カラーとシルク印刷の文字、スリーブの素材とエンボスロゴ、パッケージの構造と印刷物一式、取扱説明書と現地語のコンプライアンスラベル。ソフトウェア面では、起動画面と画面上のUI文字、ブランド専用アプリまたはプロトコルに対応する貴社独自のアプリ、ご指定の文字起こし・要約エンジン、専用のナレッジベースとオンプレミスのバックエンドです。
ユースケース、対象市場、想定数量をお知らせください。価格とカスタマイズ案をご返信します。サンプルは出荷可能で、それに先立ち、Bluetoothプロトコル文書を貴社のエンジニアにお送りすることもできます。
PINGOOD TECHNOLOGY CO. LIMITED (屋号: AI HW Stack)は、深圳に拠点を置くAIハードウェアのODM/OEMです。インダストリアルデザインと金型、メインボード、Androidファームウェア、ASR + LLM + TTSのパイプライン、コンパニオンアプリ、クラウドバックエンドまでの全スタックを、1回の発注でお届けします。
基盤とする技術: Android TV, Azure AI Speech, OpenAI speech-to-text, Alibaba Model Studio, Cloudflare Workers.
公開日 2026-09-01 · · お問い合わせ: kristy@aihwstack.com