セットアップ
このページでは Web SDK の初期セットアップを説明します。 @sorisdk/web-audio はブラウザで動作し、主な違いはパッケージマネージャーで 導入するか、後で standalone script 配布を使うかです。
Web SDK は現在 Beta 段階のため、パッケージの進化に合わせてセットアップ 方法が一部変わる可能性があります。
パッケージマネージャーでのインストール
bash
npm install @sorisdk/web-audiobash
yarn add @sorisdk/web-audiobash
pnpm add @sorisdk/web-audiobash
bun add @sorisdk/web-audioフレームワークアプリ向け Wasm ローダー
React、Vue、Svelte、Nuxt のような Vite ベースのフレームワークを使う場合は vite-plugin-wasm を追加し、フレームワーク設定に wasm() を登録してください。
bash
npm install -D vite-plugin-wasmts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import wasm from "vite-plugin-wasm";
export default defineConfig({
plugins: [react(), wasm()]
});ts
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import wasm from "vite-plugin-wasm";
export default defineConfig({
plugins: [vue(), wasm()]
});ts
import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import wasm from "vite-plugin-wasm";
export default defineConfig({
plugins: [svelte(), wasm()]
});ts
import wasm from "vite-plugin-wasm";
export default defineNuxtConfig({
vite: {
plugins: [wasm()]
}
});最小ブラウザセットアップ
ts
import { AudioRecognizer } from "@sorisdk/web-audio";
const recognizer = new AudioRecognizer({
appId: "YOUR_APP_ID",
ephemeralKey: async () => {
const response = await fetch("/api/ephemeral-key", {
method: "POST"
});
if (!response.ok) {
throw new Error(`Ephemeral key request failed: HTTP ${response.status}`);
}
const { ephemeral_key } = await response.json();
return ephemeral_key;
}
});
recognizer.on("campaign", (event) => {
console.log(event.campaign);
});
await recognizer.start();キー発行とrelayパターンは Ephemeral Key を参照してください。
注意点
@sorisdk/web-audioは Node.js ランタイムではなく、ブラウザコードで実行する必要があります。- Node.js アプリは主にインストール、バンドル、SSR、任意のrelayロジックに使われます。
AudioRecognizerは session storage と pack caching を内部的に管理します。- 推奨パターンは
ephemeralKeyに文字列または async handler を渡す方法です。 - Vite ベースのフレームワークアプリでは、SDK を import する前に
vite-plugin-wasmを設定してください。
Standalone スクリプトタグ
Soon
