Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Elixir/NervesでOpen JTalkを使い、 ラズパイに日本語をしゃべらせてみた
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masatoshi Nishiguchi
September 24, 2025
Programming
51
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Elixir/NervesでOpen JTalkを使い、 ラズパイに日本語をしゃべらせてみた
open_jtalk_elixir の開発録
Masatoshi Nishiguchi
September 24, 2025
Transcript
12 slides
Elixir/NervesでOpen JTalkを使い、 ラズパイに日本語をしゃべらせてみた open_jtalk_elixir の開発録 mnishiguchi
きっかけ • 友人のひとこと: 「Nervesでラズパイに日本語しゃべらせられない?」 • 地味にハードル高そう… • 元氣があれば何でもできる
Open JTalkとは • 日本語テキスト音声合成(Text to Speech, TTS)エンジン • CLIベースで軽量、組み込み向き •
構成要素 ◦ Open JTalk 本体(CLI) ◦ MeCab辞書(形態素解析・読み・アクセント) ◦ HTS 音声モデル(`.htsvoice`ファイル)
https://raspida.com/speech-synthesis/
目標 • 開発も運用も楽しい 🎉 • 実装が容易でかつ保守対応しやすいこと • 初期導入が簡単であること • 実行時の安全性を確保すること
• Nerves(組み込み)でも動く
None
Open JTalk を Elixir から使うには? • NIF(Native Implemented Function) ◦
高速だがVMごと落ちるリスクあり • Port ◦ 柔軟だけど I/O や引数管理が面倒 • System.cmd/3 ◦ シンプル ◦ 移植性高い ◦ クラッシュしても VM に影響なし
Open JTalk のビルド • 課題 ◦ MeCab / HTS /
Open JTalk など、依存関係の解決に一定の知識と 手間が必要 ◦ 辞書:約 100MB、音声モデル:約 2MB と、サイズもやや大きめ • 解決策 ◦ mix compile 時に Open JTalk を 自動ビルド ◦ 辞書・音声モデルを 標準で同梱 ◦ 環境変数で 外部の辞書/音声への切替に対応
クロスプラットフォーム対応 • Linux: ARM系 ◦ config.sub更新必要 • macOS ◦ 静的リンク不可→動的リンク
◦ aplay→afplay • Nerves ◦ MIX_TARGETでクロスコンパイル ◦ 容量制約あり • CI 環境での確認 ◦ Linux x86_64 ◦ Linux aarch64 ◦ macOS 14 (arm64, Apple Silicon)
論よりRUN
Nerves で使うとき • MIX_TARGET指定でクロスコンパイル • 辞書/音声: 開発は同梱、運用は外部配置 • 音声出力: Linuxはaplay,
ALSA設定要確認
まとめ • 日本語の音声合成を ローカル環境で Elixir で簡単に実現 • Linux / macOS
/ Nerves で動作 • GitHub: piyopiyoex/open_jtalk_elixir
Other Decks in Programming
See All in Programming
SODA - FACT BOOK(EN)
sodainc
1
240
LLM 101: Exploring LLMs, Starting with Tokens.
dalinaum
0
110
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
260
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.9k
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
200
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
170
止まらない比較を止める — 余帰納法で無限ストリームを比べる
tarao
0
140
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
310
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
330
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
860
小さなアプリを作って公開するまで
onozaty
0
170
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
How to build a perfect <img>
jonoalderson
1
6.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
880
The Curse of the Amulet
leimatthew05
4
17k
Are puppies a ranking factor?
jonoalderson
2
4.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Design in an AI World
tapps
1
390
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
11
37k