Coder Social home page Coder Social logo

hanako's Introduction

Hanako

汎用Discordチャット読み上げ(TTS)Bot 強力なSE機能、任意の音声サーバに対応、複数サーバで高速に動作😼

Did you in trouble?

問題が起きた場合はIssueに投稿し、相互に共有してください。他の利用者の助けになります!
ねこは寂しがり屋でお話が大好きです、開発メンバーのTwitterやDiscordのDMでこっそり質問しないで!😿

Usage

はなことの対話

はなこにコマンド入力してあげると、様々な機能を利用できる
コマンド入力は、テキストチャンネルに@botname コマンド名 のリプライ形式、もしくは >コマンド名と発言することで行う

コマンド一覧

機能 コマンド
VC参加 お願い plz summon s @hanako お願い
VC離脱 さようなら bye b @hanako bye
文字数制限 limit readlimit @hanako limit 20
教育(辞書機能) 教育 teach wbook-add mk @hanako 教育 HIKAKIN ヒカキン
忘却(辞書機能) 忘却 forget wbook-delete rm @hanako 忘却 SEIKIN
辞書全削除 wbook-alldel alldelete @hanako alldelete
辞書一覧 dictionary wbook-list dic @hanako dictionary
読上の中止 seibai stop @hanako seibai
SEの追加 se-add @hanako se-add (泣く) https://...(音声ファイルのURL)
SEの削除 se-del @hanako se-del :seikin-osusume:
SEの一覧 se-list @hanako se-list
ブラックリスト追加 blacklist-add @hanako blacklist-add @seikin
ブラックリスト除外 blacklist-remove @hanako blacklist-remove @hikakin
ブラックリスト一覧 blacklist-show @hanako blacklist-show
読み上げキャラ変更 キャラクター変更 speaker @hanako speaker kiritan

ボイスチャットへの参加、退出

参加させたいボイスチャットに参加し、読み上げたいテキストチャンネルに@hanako plz と発言(または、summon s) @hanako bye(または、bye b ) で退出

単語の教育

ボイスチャットにはなこを参加させた状態で @hanako teach 置換前の単語 置換後の単語 と発言
@hanako forget 置換前の単語 と発言し削除
@hanako alldelete ですべての単語を削除
@hanako dictionary で教育済みの単語の一覧を表示

読み上げる文字数の制限

@hanako limit 30で読み上げる文字数を30文字に制限

SE機能

Discord上に音声ファイルをドラッグアンドドロップするなどして、音声ファイルのリンクを作成する
ボイスチャットにはなこを参加させた状態で @hanako se-add SE化する単語 SEの音声ファイルリンク( .wav mp3 ) と発言
@hanako se-del SE化した単語 でSEを解除
@hanako se-list でSEの一覧を表示

ブラックリスト(ユーザのミュート)

ボイスチャットにはなこを参加させた状態で @hanako blacklist-add @username と発言、@usernameの発言は読まれなくなる
@hanako blacklist-remove @username で解除
@hanako blacklist-show でミュート中のユーザの一覧を表示

成敗

@hanako seibai で現在読み上げ中の音声(とそれ以降に読み上げる予定の音声)をすべて中断する

読み上げキャラクター変更

@hanako speaker キャラクター名 で音声サーバの設定に従って、サーバの読み上げキャラクターを変更する

Dependencies

  • 気合

Install

1.BOTの作成

Discord Developer Portalよりアプリケーションを作成し、ボットのTOKENを取得する必要があります
参考: https://discordpy.readthedocs.io/ja/latest/discord.html#discord-intro

2.音声サーバの設定

標準の機能では、HTTPリクエストによる GET /api/v1/audiofile?text=読み上げテキスト&name=キャラクター名 に対して、audio/wavにてストリームを返答する形式のオーディオサーバを任意にTTSの為に利用可能です

Ebyroidは、VoiceroidがインストールされたWindowsマシンを音声サーバとして利用可能にする唯一のアプリケーションです。
動作には有効なライセンスを持つVoiceroidライブラリを所持している必要があります。アプリケーションのインストールは当該リポジトリから可能です https://github.com/nanokina/ebyroid

hanakoの標準設定では4090番ポートにある音声サーバに接続を行います(これは設定ファイルから変更可能です)
これは、ebyroidのデフォルト起動時のポート番号設定に従います

C:\ebyroid> ebyroid.exe configure
C:\ebyroid> ebyroid.exe start 

3.hanakoのインストール

git clone https://github.com/Ebycow/hanako.git
cd hanako
npm i

hanakoディレクトリのapp-config-default.ymlをコピーし、app-config.ymlにリネームし、discord_bot_tokenを 1.BOTの作成 にて作成したトークンに変更します

  # Discord Bot のトークン (必ず app-config.yml でオーバーライドしてください)
  discord_bot_token: 'nYank0Daisk1......'

起動

node index

VS.

喋太郎: https://twitter.com/syabetaro - More cute voice

Catgirl

img20200222233956

彼女は凜々しい白猫でしたが、ある日降り積もるソメイヨシノを枕に眠りについたのち桃色に染まりました

She was a polished white cat, but one day she put on asleep on a pillow with a pile of pink plant petals. Then was painted peach color.

hanako's People

Contributors

nanokina avatar ebycow avatar

Stargazers

Shun.Fujita avatar 蜜柑ルーペ avatar  avatar Dosugamea avatar jiuya avatar  avatar  avatar wicked hacker avatar Kirihara Kai avatar  avatar  avatar

Watchers

Shun.Fujita avatar  avatar  avatar

Forkers

tkdalic

hanako's Issues

Botの動作が不安定

私の環境の問題かもしれませんがもし既存の不具合でしたり、修正が可能でしたらよろしくお願いいたします。
症状
Botを起動した直後は普通に読みあげてくれるのに、途中から(最速1分後)からログなどには全く症状が出ないのですが、Botが急に読みあげなくなります。
コンソールなどもずっと監視していましたが読みあげなくなったときにエラーログが出ず、原因不明な状態です。
?!seibai コマンドを打ち込むと稀に読み上げを再開する場合がありますが基本的に再起動するまで読みあげてくれません。
?!bye コマンドが反応しないことなどがあるので、私側の問題かなとも思いましたが一応不具合報告としてさせていただきました。
MESSAGE CONTENT INTENT
SERVER MEMBERS INTENT
PRESENCE INTENT
この辺のINTENTはオンにしてあります。

Slashコマンドに対応

slashコマンドはDiscordの各ボット側で追加する機能ですので, 必要に応じて各自で実装してください

ブラックリストに認可をつけてほしい

Originally posted by @Ebycow in #28 (comment)

について,調査したところBOTへのコマンド設定により権限の設定が可能になるみたい.
こちらの旧環境の運用状況が,読み上げが行われなくなる等不安定になりつつある為,コマンド操作を可能とするコントローラを実装したい

Discord側のVoiceAPIの仕様変更による読み上げ不良

[2023-03-22T19:02:52.200] [ERROR] application.js - 予期しないエラーが発生。 Error [VOICE_CONNECTION_TIMEOUT]: Connection not established within 15 seconds. at VoiceConnection.authenticateFailed (C:\Users\USER\Documents\DocmentsAvalon\VoiceroidBot\hanako\node_modules\discord.js\src\client\voice\VoiceConnection.js:304:26) at C:\Users\USER\Documents\DocmentsAvalon\VoiceroidBot\hanako\node_modules\discord.js\src\client\voice\VoiceConnection.js:325:61 at Timeout.<anonymous> (C:\Users\USER\Documents\DocmentsAvalon\VoiceroidBot\hanako\node_modules\discord.js\src\client\BaseClient.js:83:7) at listOnTimeout (internal/timers.js:557:17) at processTimers (internal/timers.js:500:7) { [Symbol(code)]: 'VOICE_CONNECTION_TIMEOUT' }
上記のようなエラーで、読み上げが不可能になってしまっています。
もし可能でしたら修正していただけると嬉しいです。

発言の前に「名前、発言内容」として発言する設定

slashコマンドの実装や、大人数で使用することを考えての設計になると嬉しいです。(たくさんの鯖で読みあげを開始されても動作が安定するようになると嬉しいです)
あとは、辞書の登録や忘却はある程度仕方ないと思いますが、制限系のコマンド(ブラックリストなど)は個々の鯖で管理者権限が無い者は設定できないようになるといいなと感じました(私はリミットを外されて痛い思いをしました)。
そして機能提案ですが、「○○が参加しました」「○○が退出しました」の設定の有無、発言の前に「名前、発言内容」として発言する設定があると便利かなと感じました。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.