短い記事 2021年8月16日

悟空訛り生成ツールをつくってなんでも悟空にしたい

ドラゴンボールのキャラクター 孫悟空の喋り方はたいへん特徴的である。

この特徴的な喋り方を簡単に再現できるツールがあれば便利だ。簡単なものを作って試してみた。

北海道在住の大学生。演劇サークルに所属していますが、やったことがあるのは音響担当・舞台装置担当・当日宣伝担当で、一度も演技をしたことがありません。好物はパステルのなめらかプリン。

前の記事:北海道の部屋の方が東京よりもちょっと暑い


悟空訛りを簡単につくりたい

ドラゴンボールの主人公である孫悟空。「オラ」「ぜってぇ」「すっぞ」など、その喋り方はとても特徴的だ。「オラ、ワクワクすっぞ~」なんて言う人は現実にはほぼいないだろうが、悟空は確実に言う。

ふつうの文章を悟空訛りに変換できるツール、つまり「悟空訛り生成ツール」を作った。

01.jpg
恥ずかしいのでぼかしましたが、プログラミング言語のひとつであるPythonを使ってごりごり書きました
02.jpg
ふつうの日本語文を入力すると
03.jpg
なんと悟空になって出力される

実はこれ、3年ほど前に大学での課題で作ったもので、最近PCのデータを整理しているときに偶然発掘。「懐かしいな~」とすぐさまプログラムを動かす環境を整えた。今に至るまでこれをWebツール等にはしていないので、自分の手元にしかないツールだ。

このツールで遊ぶのに熱中するあまり、温めていたみそ汁を焦がしてあやうく家を燃やしかけた。危ない危ない。

悟空訛りにしていこう

この悟空訛り生成ツールを使うと文章がどう悟空になるのか、さっそく一気に見ていこう。

実行例① 自己紹介

まずは無難に自己紹介の文を入力してみる。

12.jpg
入力文「こんにちは。私は現役大学院生で、デイリーポータルZのライターです。」
13.jpg
出力結果がこちら。おっ、悟空だ!

めちゃめちゃ悟空っぽくなった。

実行例② 記事のリード文

ちょっと長めの文はどうだろうか。僕のデビュー記事「僕たちはWANIMAのように写真に写れるか」のリード文を入力してみる。
(ここからは見やすさを優先して、入力や出力結果を整形した画像を紹介することにします)

14.jpg
入力文がこちら。記事のリード文。
15.jpg
出力結果。精度は落ちているものの、悟空感はすごい

長い文章となると、プログラムでカバーしきれない悟空なまりが発生するようで、精度が落ちてしまった。しかし、要所要所でしっかり悟空だ。

「おら それ が でえ すきだ」で僕は限界だった。

実行例③ Wikipedia

Wikipediaの文章を悟空に読ませてみるのはどうだろう。

16.jpg
入力文。Wikipedia「バイオハザードシリーズ」の項からの引用です。
17.jpg
出力結果。悟空に百科事典はちょっと難しかったかもしれない。

だいぶ精度が…。途中「さばいばるしゅーたー」と、悟空が我にかえってしまっている部分もある。もうちょっと力を分けてあげたい。

実行例④ ビジネスシーン

最後にぐっと難易度をあげてみる。ビジネス会話だ。

18.jpg
入力文。電話を取ったら担当者が外出していた。悟空、さあどうする。
19.jpg
あーあーあー。崩壊してしまった。悟空に会社員は向いていないみたいだ。

というのも、悟空が敬語を喋るのを考慮していない実装だからである。

この実装では、完璧な悟空訛りを得るためには人間による校正が必要だ。

敬語がなければそれなりに形になるのだが、そういった表現が豊富だというのが日本語の難しいところだ。

小規模ではあるがこういった処理を実装してみて分かるのが、日本語の言語処理が相当難しいということ。アレクサやSiriが多少変なことを言っても許してあげてほしい。

いったん広告です

悟空訛り生成支援ツールのあらまし

ここからはどのように悟空訛りを実現しているのか、ツールを制作して授業で発表した当時のスライドを使って説明しよう。技術的な話になるのでご興味あるかたはぜひお付き合いを…!

04.jpg
授業中にガチで使ったスライド。とんでもなく生々しい。
05.jpg
まずはこのプログラムを作った背景である。悟空の喋り方は特徴的でたいへんおもしろい。
06.jpg
その喋り方は漫才にも応用されていて、「アイデンティティ」というコンビがそのパイオニアだ。悟空のモノマネをしながら漫才を進めていくというシンプルな構造だが、めちゃくちゃ似ている。悟空の声優をしている野沢雅子さんの公認を得ているほどの腕前だ。
07.jpg
これを踏まえ、手軽に悟空のしゃべり方を再現できるツールがあれば便利であろうと思って作成したのだ。動機は単純である。
08.jpg
悟空の訛りの特徴を列挙するとこのようになるであろう。ふつうの日本語文にこの特徴を加えていくのがこのプログラムの仕事である。
09.jpg
処理の流れはこうなっている。

このプログラムが行っている仕事をざっくり説明すると、入力された文章を解析して単語単位に分解する操作一部の単語を悟空が使う単語に置き換える操作読み方を悟空っぽくする操作、この3つである。

10.jpg
処理の前半部分はこうなっています

「分かち書き」とは、文章を単語単位に分解する処理のこと。

(分かち書きの例) 
私は赤い服を着た少女を見た

/ / 赤い / / / / / 少女 / / /

そして「形態素解析」とは、分解した単語の品詞や活用の種類などを解析することである。

(形態素解析の例) 
私は赤い服を着た少女を見た

(名詞) / は(助詞) / 赤い(形容詞) / 服(名詞) /
(助詞) / 着(動詞) / た(助動詞) / 少女(名詞) /
(助詞) / 見(動詞) / た(助動詞)

分かち書きや形態素解析の処理を行うツールはオープンソースとして公開されており、それを利用した。素人がこれを一から実装するのはさすがに規模が大きくなりすぎる。先人の知恵をありがたく活用させていただいた。

こうして文章を単語単位に分解し、含まれる単語の一部を悟空が使いそうなものに置き換えていく。
(例)「こんにちは」→「オッス」など

11.jpg
これが処理の後半部分です

さらに下処理として、プログラム内部での単語の表現をローマ字表記に直す処理をする。

ここでこのプログラムの肝「音便化」である。悟空は"ai" "ae" "ei"といった母音の連続を発音することができず、ほぼ全て"ee"という音になってしまう。
(例) 「おまえ(omae)」→「おめえ(omee)」など

※これは言語学的には音便ではないかもしれませんが、便宜上こう名付けることにします

この「音便化」、つまり音の置き換え処理をどんどん行い、今度はローマ字をひらがな表記になおして出力する。

これが悟空訛り生成ツールの処理の流れである。

20.jpg
でもこの実装では完璧な変換はできず……。作った当時も考察のスライドにて「悟空訛り生成支援ツールとして考えてください」と言い訳をしていた。先生は笑っていたので問題ない。単位もバッチリとれた。

制作から3年経って

3年前に作った当時はこれをWebサービスとして提供することも考えたが、オープンソースのライセンスの問題やサーバの負荷など、課題が多すぎると思い断念した。

この記事を書くにあたり調べてみると、どうやら似たようなサービスをWeb上に公開している方がいるらしい(参考:「悟空語 生成ツール」でGoogle検索)。ああ、尊敬。

この方がどのように実装しているのかは分からないが、本記事の解説と見比べながら利用してみると面白いかもしれない。

▽デイリーポータルZトップへ

banner.jpg

 

デイリーポータルZのTwitterをフォローすると、あなたのタイムラインに「役には立たないけどなんかいい情報」がとどきます!

→→→  ←←←
ひと段落(広告)

 

デイリーポータルZは、Amazonアソシエイト・プログラムに参加しています。

デイリーポータルZを

 

バックナンバー

バックナンバー

▲デイリーポータルZトップへ バックナンバーいちらんへ