Skip to content

y52en/aquestalk.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AquesTalk.js

途中でやる気をなくしてしまったプロジェクト
DEMO : https://y52en.github.io/aquestalk.js

TODO

  • 使い方を書く
  • f1以外の声を使えるようにする
    • そのためにpeをparseして諸々する
  • リファクタリング!!!!!
  • エラー表示をする(今はエラーが出ても何も表示されない)

やる気をなくした最大の原因は、音声の生成が非常に遅いこと
例えば、こんにちわ、せかいをしゃべらせるだけで自分の環境で0.25秒かかる(スマホはもっとかかる)
ここから漢字や英語をひらがなに変換する処理などを加えると、さらに遅くなるのは目に見えている
x86エミュレータで手軽に使えるwasmライブラリがあればもう少し早くなるのかもしれない

パフォーマンス改善のためにやったこと

  • strncmpが非常に頻繁に呼ばれていて、hookで処理をしていたが、hookの処理は重くボトルネックになっていたので、strncmpのアセンブリを埋めこみエミュレータ内で処理させた(かなり効果があった)
  • Unicorn.jsのビルドオプションを-O3にした(気持ち0.01秒ぐらいしか早くなっていない、なんなら変わってないかもしれない)

今後考えられること

  • 一文づつ分割してWeb Workersで並列化する
  • wasm製のx86エミュレータを使う
    • Unicorn.jsをwasm化しようとしたが、自分の力では無理だった

ここから完成したとき用のreadme

AquesTalkをunicornで雑に諸々エミュレートしてブラウザーで使えるようにしたものです。

⚠注意: aquesTalkの著作権は株式会社アクエストに帰属します。詳しいライセンスはAqLicence.txtを参照してください。(zip内に含まれています)

使い方

まだ

build

npm linkがいります
Unicorn.jsは自前でビルドする必要があります(cdnやreleaseのものは古く、バグがあるため持ってきてもそのままでは動きません)
あとは特筆することはないはず

諸々

  • ライセンスは?
    • aquesTalk.jsのaquesTalk部分はAquesTalkのライセンスに従います。
    • このリポジトリのコードはGPLライセンスです。(unicorn.jsがGPLのため)
  • なぜzipファイルでaquesTalkを読み込んでいるの?
    • AqLicence.txtによれば、dllファイル単体での再配布は禁止されているようです。それを回避するためにzipファイルで配布しています。
  • 参考: https://www.a-quest.com/archive/manual/prog_guide_linux.pdf

About

途中でやる気をなくしてしまったプロジェクト DEMO : https://y52en.github.io/aquestalk.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published