diff --git a/backend/scripts/dev.sh b/backend/scripts/dev.sh index 3f7dd2d..931f214 100755 --- a/backend/scripts/dev.sh +++ b/backend/scripts/dev.sh @@ -21,8 +21,8 @@ else fi # ルートの.envファイルを読み込んでサーバーを起動 -# Node.jsのメモリ制限を1GBに設定 -export NODE_OPTIONS="--max-old-space-size=1024" +# Node.jsのメモリ制限を1GBに設定、WASMモジュールを有効化(Prisma 7対応) +export NODE_OPTIONS="--max-old-space-size=1024 --experimental-wasm-modules" if command -v pnpm >/dev/null 2>&1; then pnpm tsx --env-file=../.env src/server.ts diff --git a/backend/src/lib/prisma.ts b/backend/src/lib/prisma.ts index 6c033b9..7179116 100644 --- a/backend/src/lib/prisma.ts +++ b/backend/src/lib/prisma.ts @@ -1,4 +1,4 @@ -import { PrismaClient } from "../generated/prisma/edge"; +import { PrismaClient } from "../generated/prisma"; import { withAccelerate } from "@prisma/extension-accelerate"; // PrismaClientのシングルトンインスタンスを作成 diff --git a/backend/src/routes/modules/speech.routes.ts b/backend/src/routes/modules/speech.routes.ts index 5d9585c..5fe1771 100644 --- a/backend/src/routes/modules/speech.routes.ts +++ b/backend/src/routes/modules/speech.routes.ts @@ -397,8 +397,8 @@ speech.openapi(ttsRoute, async (c) => { const { text, voiceId, modelId } = c.req.valid("json"); - // Use default voiceId if not provided (Rachel - a natural sounding voice) - const selectedVoiceId = voiceId || "lhTvHflPVOqgSWyuWQry"; + // Use default voiceId from environment or fallback + const selectedVoiceId = voiceId || process.env.ELEVENLABS_VOICE_ID || "lhTvHflPVOqgSWyuWQry"; const audioStream = await textToSpeech( apiKey, diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index ca5cc4e..f480d60 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -37,7 +37,7 @@ export default function RootLayout({ diff --git a/frontend/src/app/simulation/page.tsx b/frontend/src/app/simulation/page.tsx index a8984bd..52e3a33 100644 --- a/frontend/src/app/simulation/page.tsx +++ b/frontend/src/app/simulation/page.tsx @@ -82,7 +82,7 @@ export default function SimulationPage() { const avatarModelUrl = useMemo(() => { if (selectedAvatar === "male") return "/models/rento.vrm"; if (selectedAvatar === "neutral") return "/models/kouta.vrm"; - return "/models/hachisannomaki.vrm"; // female + return "/models/maki.vrm"; // female }, [selectedAvatar]); // 背景の保存/復元s