ZEN-TTS 1.3.0(モデル)

ZEN-TTS は、全力機械の日本語の音声合成(TTS)です。読み(G2P)から声づくり(NSF デコーダ、44.1 kHz)まで、すべてブラウザの中(WebGPU / WebAssembly)と Node.js(CPU)で動きます。サーバーは要りません。5 つの感情スタイルを比率で混ぜたり、文の途中で変えたりできます。

このリポジトリには、ZEN-TTS 1.3.0 で使うモデルのファイル(4 つの voice と、共通の読みのモデル)を置いています。動かすためのプログラムは GitHub の zenryokukikai/zen-tts(タグ v1.3.0)にあります。

voice

voice id model 特徴 スタイル
全力 マリン marine marine-1.2 やわらかく落ち着いた女性の声 neutral / happy / sad / angry / apologetic
全力 ハシロウ hashiro hashiro-1.1 落ち着いた、深みのある男性の声 neutral / happy / sad / angry / apologetic
全力 カイ kai kai-1.1 40代の男性。響きのある低音 neutral / happy / sad / angry / apologetic
全力 キッカ kikka kikka-1.1 素朴で透明感のある若い女性の声 neutral / happy / sad / angry / apologetic
  • ボイスクローン機能はありません。ほかの voice の作成は全力機械(https://zenryokukikai.com )へご依頼ください。

ファイル

ファイル 大きさ SHA-256
marine.ztm 27.7 MB(27,650,080 バイト) c7bdad381540d33f90aa60b255520051b04d6ce84c66e0fbc8d8ed3cdec3a4dd
hashiro.ztm 27.7 MB(27,650,080 バイト) 17d8f69ae8c45c3390ca06f15f30b7bc15c8be74d76c35ca0b9fe30851895433
kai.ztm 27.7 MB(27,650,016 バイト) 1c9bbd2113900262b8f74dfcfafe2e61fd3a7cf184b91d76edcd96dd4ff6444a
kikka.ztm 27.7 MB(27,650,080 バイト) 81f3068e883f83ac5c0e7a84b6e0b06ca6ef1f0de05e7a136d94bed18845437b
g2p/g2p.bin 13.5 MB(13,453,312 バイト) 6a9716330f1d02968e91bd809022bf040cb7fb665935211713609b83dc004523
g2p/g2p.json 55 KB(55,408 バイト) 4a817fda1e8317cce8431c0721ff4d473d94caa70a00f3d0e7d304492c1beb35
  • .ztm:1 つの voice を 1 ファイルにしたもの(韻律予測器・生成器は int8、NSF デコーダは fp16)。形式は docs/ztm-format.md。
  • g2p/:読みのモデル(全 voice 共通)。GitHub のリポジトリ・パッケージの models/g2p/ と同じファイルです。
  • 中身は、全力機械の CDN(https://tts-models.zenryoku.work/v1.3.0/<voice>.ztm)で配っているものと、バイト単位で同じです。
  • ZEN-TTS 1.3.0 以降のランタイムで使います(1.2.x のランタイムでも読み込めますが、読みのモデルが違うという警告が出ます)。

使い方

ZEN-TTS のプログラムは GitHub から入れます(README)。

pnpm add github:zenryokukikai/zen-tts#v1.3.0

Node.js(CPU):

import { ZenTtsNode, wavBytes } from 'zen-tts/node';
import { writeFileSync } from 'node:fs';

// model:.ztm のローカルのパスか URL。読みのモデルはパッケージの models/g2p/
const tts = await ZenTtsNode.load({ model: './kikka.ztm' });
const r = await tts.speak('本日はご来店いただき、ありがとうございます。', { emotion: { happy: 70, neutral: 30 } });
writeFileSync('voice.wav', wavBytes(r.pcm));   // 44.1 kHz、モノラル

ブラウザ(WebGPU、使えないときは WebAssembly):

import { ZenTts, wavBlob } from './dist/index.js';
const tts = await ZenTts.load({ modelsUrl: './models', cpuWasmUrl: './cpu/tts-cpu.wasm', model: './voices/marine.ztm' });
const r = await tts.speak('本日はご来店いただき、ありがとうございます。', {
  emotion: { happy: 70, neutral: 30 },
  speed: 1.2,   // 話す速さ(0.5〜1.5)
  pitch: 2,     // 声の高さ(半音、-6〜+12)
});
const url = URL.createObjectURL(wavBlob(r.audio));

感情の混ぜ方、文中の変化、辞書などは ZEN-TTS の README を見てください。

ライセンス

ZEN-TTS ライセンス 1.0(全力機械株式会社)。GitHub のリポジトリと同じ条件です。

  • 自分のアプリ・サイト・サービス・作品の中で使えます。作った音声も使えます(商用・非商用を問いません)。
  • 条件:利用者が見つけられる場所に、クレジット「音声合成:ZEN-TTS(https://zenryokukikai.com )」を表示してください。
  • 改変・再配布はできません。本ソフトウェア、その重み、それで作った音声を、ほかの機械学習モデルの学習・蒸留・評価に使うこともできません。
  • くわしくは LICENSE.md。第三者の部分は THIRD_PARTY_NOTICES.md。

読みのモデルの学習に使ったテキスト

読みのモデル(g2p/)の学習には、次の公開されているテキストや辞書を使いました。

  • 日本語版ウィキペディアの文(CC BY-SA)
  • 青空文庫の作品とルビ
  • Tatoeba の日本語の文(CC BY)
  • ウィキニュース日本語版の文(CC BY)
  • 国立国会図書館の公開データ(ふりがな)
  • 英単語の読み:CMU Pronouncing Dictionary、12dicts(公有)、mecab-ipadic-neologd(Apache-2.0)の一部
  • 一部の語の読み:IPAdic 2.7.0

それぞれの著作権表示とライセンスは THIRD_PARTY_NOTICES.md にあります。

変更履歴

  • 1.3.0:読みを改善しました(英単語、「〜はね」、長い金額や単位つきの数字、二色 など)。読みのモデル(g2p/)が新しくなりました。voice の声は 1.2.2 と同じです(新しい読みのモデルに合わせてファイルを作り直しています)。
  • 1.2.2(マリンの voice だけ):マリン 1.2。「お問い合わせありがとう」などで、「ありがとう」の「あ」が「え」に寄って聞こえる(「えりがとう」)のを減らしました。ほかの voice、読みのモデル、プログラムは変わりません。
  • 1.2.1(プログラムだけ):言葉のつなぎ目や間に出ていたビリビリ(ブザーのような音)を直しました。モデルのファイルは 1.2.0 と同じです。

1.2.0:

  • 声づくり部の雑音の作り方を新しくしました。子音や息の音のザラつき、「く」などで出ていた高い「ピュン」という音が減ります。
  • 読みのモデルを新しくしました。数字(10分 ジュップン)と英単語(Unity など)も読めます。組み込みの読みの辞書はなくしました。
  • 4 つの voice は 1.1 になりました。
  • くわしくは CHANGELOG。

リンク


English

ZEN-TTS is a lightweight Japanese text-to-speech engine by Zenryoku Kikai. Everything from the reading model (G2P) to the 44.1 kHz NSF decoder runs on the device: in the browser (WebGPU, or WebAssembly as a fallback) and in Node.js (CPU). No server is needed. Five emotion styles (neutral / happy / sad / angry / apologetic) can be blended and changed within a sentence.

This repository holds the model files for ZEN-TTS 1.3.0: four voices (marine 1.2; hashiro, kai, kikka 1.1) and the shared reading model (g2p/). The runtime is on GitHub: zenryokukikai/zen-tts (tag v1.3.0). The files are byte-identical to those on the Zenryoku Kikai CDN (https://tts-models.zenryoku.work/v1.3.0/).

import { ZenTtsNode, wavBytes } from 'zen-tts/node';
const tts = await ZenTtsNode.load({ model: './kikka.ztm' });
const r = await tts.speak('本日はご来店いただき、ありがとうございます。', { emotion: { happy: 70, neutral: 30 } });

License: ZEN-TTS License 1.0 (the same terms as on GitHub). Use in your apps, sites, services and works is allowed, commercial or not, on condition that you show the credit "Speech synthesis: ZEN-TTS (https://zenryokukikai.com )". No modification or redistribution, and no use of the software, its weights or its output to train, distil or evaluate other machine-learning models. Third-party notices: THIRD_PARTY_NOTICES.md.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support