Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mimisukemaster/ai-voicevox

A web app that utilizes multiple LLMs to answer questions, engage in debates between the models. Responses are read aloud using VOICEVOX.
https://github.com/mimisukemaster/ai-voicevox

api gemini gemini-api http-server nodejs voicevox web-app web-development

Last synced: about 4 hours ago
JSON representation

A web app that utilizes multiple LLMs to answer questions, engage in debates between the models. Responses are read aloud using VOICEVOX.

Awesome Lists containing this project

README

        

# AI-VOICEVOX
[](https://github.com/mimisukeMaster/AI-VOICEVOX/stargazers)
[](https://github.com/mimisukeMaster/AI-VOICEVOX/issues)
[](https://github.com/mimisukeMaster/OsakanaFlock/pulls)
[](https://www.apache.org/licenses/)

[](https://github.com/mimisukeMaster/AI-VOICEVOX/deployments)

[](https://open.vscode.dev/mimisukeMaster/AI-VOICEVOX)

GeminiやCommandRなどのLLMを使用し、LLM同士で討論させることができたり、質問に答えたりできるWebアプリです。全ての返答はVOICEVOXによりリアルタイムで音声合成され、読み上げられます。

## Requirements
`npm`が効く環境で、以下のコマンドを実行して[package.json](/package.json)に記載されたパッケージをインストールしてください。
```cmd
npm install
(自機は nodejs v22.7.0, npm v10.8.2 で実行)
```
以下のパッケージがインストールされます。
```cmd
"@google/generative-ai": "^0.17.1",
"cohere-ai": "^7.13.0",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"vercel": "^37.4.2"
```

## Directory
主要部のみ
```
AI-VOICEVOX
│ .env (作成してください)
│ vercel.json
│ server.js
└─ public

├─ about
│ └─ index.html

├─ question
│ │ index.html
│ └─ client.js

│ index.html
│ client.js
│ styles.css
└─ TtsQuestV3Voicevox.js
```
**server.js**: バックエンド処理

**client.js**: フロントエンド処理

**TtsQuestV3Voicevox.js**: ストリーミング版の音声合成処理

**public**: http://localhost:3000 接続時のルートにあたる箇所

**question**: http://localhost:3000/question にあたる箇所

**about**: http://localhost:3000/about にあたる箇所

## Initial Setup
GeminiAPI Key, Cohere API Key, VOICEVOX Web版 API Key が必要です。キーを取得後、ルートディレクトリに.envファイルを作成し格納してください。
```env
GEMINI_API_KEY="**********"
COHERE_API_KEY="**********"
VOICEVOX_API_KEY="**********"
```

## Execution
npmのパスが通るコマンドラインで、プロジェクトのルートディレクトリに移動し、以下を実行してください。
```cmd
npm start
```
以下の表示が出たら、http://localhost:3000 を開きます。
```cmd
Server started on port:3000
```
### AI討論
http://localhost:3000

Gemini、CommandR の各APIを用いて話し合いをさせます。バックエンドで議題から立場を明確に定義し、各々の主張を出力させています。それをフロントエンドに返し、VOICEVOXで読み上げています。賛成派がGemini、反対派がCommandRの回答となっています。

「対戦相手を選択する」で反対派の声を変えると、より対話らしくなります。終了ボタンで現在話されているターンで終了します。(計10回の発言で強制的に終了します)

「ローカルAPIを使う」にチェックを入れた場合、ローカルのVOICEVOX Engineを利用し[ローカル版](http://localhost:50021/docs)で処理されます。別途、VOICEVOXソフトを起動しておいてください。

### AI豆打者
http://localhost:3000/question

対話形式で質問ができます。質問文をバックエンドに送り、GeminiAPIを呼んだ後、レスポンスをVOICEVOXで読み上げています。ローカルでの音声合成は基本的に[高速版](https://voicevox.su-shiki.com/su-shikiapis/)で処理されます。

こちらも、「ローカルAPIを使う」にチェックを入れた場合VOICEVOXソフトを起動してから「質問する!」ボタンを押してください。

## Demo
Vercel上でデプロイしており、そちらから仕様を確認できます。

https://ai-voicevox.vercel.app/

- コミット時にこのドメインに再デプロイされますが、更新が遅れる場合があります。
- Vercel上で動かしているため、「ローカルのVOICEVOXを使う」は使用できません。
- 音声合成は全て[ストリーミング版](https://github.com/ts-klassen/ttsQuestV3Voicevox)で処理されます。これは、合成に時間がかかる際のタイムアウトを防ぐためです。
- 数秒間隔で合成処理を行うと、ストリーミング版の制限として`429 Too many requests`が返される場合があります。その際は数秒程度おいて再度試してください。
- ローカルでの実行時と比べ一部異なる場合、コミットのDescriptionにその旨を記します。

## Reference
VOICEVOX API Key 取得先と解説記事
- https://voicevox.su-shiki.com/su-shikiapis/

- https://zenn.dev/mongonta/articles/8aac1041c628d4

GeminiAPI Key 取得先
- https://aistudio.google.com/app/apikey

Cohere API Key 取得先
- https://dashboard.cohere.com/api-keys

## Author
みみすけ名人 mimisukeMaster

[](https://x.com/mimisukeMaster)
[](https://www.artstation.com/mimisukemaster)
[](https://www.youtube.com/channel/UCWnmp8t4GJzcjBxhtgo9rKQ)

## LICENCE
AI-VOICEVOX is under [Apache-2.0 licence](/LICENSE).