ありったけの愛を叫べ

思ったことを書きます。正確でないものを含みます。極力良く言えば素が色濃くでます。

働くソフトウェアエンジニアの心境に見せかけた声好きオタク記事

俺多分企業エンジニア向いてない。チームを変えたいと思っても軽度な就活と一緒。自分を売り出して受け入れ先に買ってもらわないといけない。受け入れ先も現在求めているのはすでにスキルがある人がいいというミスマッチ。

おそらく俺はプログラミングは好きだし設計も嫌いじゃない。週末に自分がほしいツールの設計をものすごく大雑把にやったりするしコードも書いたりする。でもこのスキルを企業で活かしたいという気持ちが薄い。

企業はプログラマが持ってるスキルを活かしたいので「スキルがなければ門をくぐれない」が当然発生する。例えば今流行りのML。MLスキル所持者は引っ張りだこでしょ。

自分はAIやMLに興味がないわけではないけど、仕事にしたいしたくないを判断出来るほど経験がない。AIに対してのお気持ちは中立どころか、大学で学んだことだけだとあまり自分に合ってなかった感じさえする。「自分を売らなきゃいけない」のに「自分をうまく買ってもらいたい」という気持ちがいまいちわかないのが自分の現状と噛み合っていない。

 

俺がプログラミングでしたいのは日常のちょっとしたことをツール化したい程度な事が多い。ぶっちゃけてしまえばネットに転がっているえっちなモノを回収閲覧分析するものが9割。そこまで多くなかったとしても半数はいってる気がする。

 

具体例を一つ。

疑問:台本を作る上でどうして(ワードなどの)テンプレートを決めてから書き始めないといけないの?あれは本質的に宣言的な文書なんだから「役者用」「効果音用」「映像用」「編集用」「ディレクション用」などなどをすべて違う文書(PDF等)として出力できるべきじゃない?「○○用にはテンプレートAを使う△△用にはテンプレートBを使う。」って作業、工数を増やすだけの無意味ある?

解決案:ライターは「すべて版」を書くものとする。この問題の解決方法の一つは「すべて版」を書くための『言語』を用意することになる。書く際にはアノテーションを使って、出力時に条件的な出力をすればいい。ライターがすべてを宣言的に書き、出力は処理系がアノテーションをみて決める、という形が正しいように思える。

 

例えば「声優用」を考えてみる。効果音がどこに入るか、このセリフとこのセリフにはどれだけの間があるか等はあまり重要じゃないはず。逆にセリフがページをまたいでいるのはとても読みづらいと思う。この場合声優用に別の出力型(又はテンプレート)があるのが望ましいと見れる。

 

つまりこの『言語』を作ってPDFを複数出力したい。

 

もう一つ。

最近音声作品を波形を見ながら聴くことが多い。波形というより実際はスペアナをみているのだけれど(音楽再生プログラム使ってると凸こんなのが音に合わせてうごくやつ)。なぜこんなことを気にするようになったかと言うとCrackerJaxxのブログとテグラユウキさん作品に編集担当解説が入っているからだ。というかCrackerJaxx編集だけじゃなくてフォーリー効果音マンやんけ!つまりCrackerJaxxのせいです。CrackerJaxx許せねえ(これが言いたいがためだけにさん付けしていない)。こっちはえっちな音声聴いてるのに波形が気になってしまうじゃないか!!

 

完全に素人だからやってることは子供の遊びとか笑われてもいいんですよ。人は自分がプロだと宣言した時点でプロなんです。プロとアマは技術の違いではなく意識や姿勢の違いしかないのだと思ってる。「プロとしてこれを生業にしているのだから、ちゃんと勉強したり質のいいものにしよう」という意識(なり潜在意識)がある思うんです。そもそも知らないものに対してプロは名乗れないという前提のもとですが。だってFFTをうまく理解してないのに『DSPエンジニア』名のれる?サブルーチン知らずに『プログラマ』名のれる?

話がそれました。

 

そして話をそらし続けます。

スペクトラムアナライザを見てるいと結構おもしろくて。この人の声はこんなオーバートーン(倍音)があるんだなとかわかるんですよ。倍音なんでべつに不思議な周波数が盛り上がってるわけじゃないんですが。このセリフでこの声出しは250Hzと500Hzが大体同じ。囁き始めると倍音が抑えられる。みたいなのが視覚的な情報として収集できる感じがたまらないです。

250Hzは女性ですが男性の声もなかなかおもしろいどころか大好きで。あの「声が低いと聞きづらいだろうから、声が通るように空気を多めにしゃべる」ヤツ。あれ、わりと高い声も同時に出ていて、ほとんどの人が聞き取っているのは高い方の声なのに喉元からは低い声も出てる。最高じゃないですか?自分でハモってるのしびれるんですけど。

観察してて気づいたのが男性の声は倍音を含めると女性の周波数と似通ってたりします。男性も女性と同じぐらい250Hzや500Hz帯やさらに上の倍音出ているんです。でも「この声は男性」「この声は女性」って結構わかるじゃないですか。人間すごい。おそらく声の抑揚のきかせ方や体のどの部分を使って音量を増幅しているかなどの違いがあるんでしょうね。「男性でも女声」ってのがあるくらいですから体の構造自体はあまり関係なさそうですね。

 

音声作品を聴いているとCrackerJaxxさんのブログに書いてあったことが脳裏をよぎります。セリフ間の「プツッ」音、ノイズ、声の入ってる部分だけのノイズ。ぜひテグラユウキさんの作品のNOSE版(効果音なし版)を聴いて見てください。編集の何たるかを聴いた気がします。自分は素人なんで、「ノイズまったくないな」や「ハイパスフィルタかかってるな」ぐらいのことにしか気づけないんですが。あとSE版も聴いてください。フォーリーだってわかってて聴くの好き。

 

本題です。

自分の理解出来る部分だけでも、これって機械的に(アルゴリズムで)なんとかなることじゃない?と思うのがプログラマの性。

ハイパスフィルタはFFTでなんとかなるだろうし、ノイズも似たような処理でなんとかなる気がする。実際に音声作品に乗っているノイズがいわゆるホワイトノイズなのかはわからないけど、そうでなかったらなんなのかとも思う。勝手な想像だが、あくまで静かな場所でできるだけ声だけが乗るように撮っているはずなのだからホワイトノイズじゃないならどうして乗ったノイズなのか訊きたい。

 

というわけでコマンドラインツール一発でササッと処理してくれそうなツールほしくない?自分は気になるからほしい。

 

こういうのが書きたい。

 

例にあげたものに限らず、作りたいツールのほとんどが「それ誰得するの?」と聞かれると思うし、正直その答えは「自分だけ」でもいいと思っていて。自分にとってソフトウェア技術というのは自分が『如何に自分を楽しませるか』の道具であって『世の中すべての人の人生を変えるほどのソフトウェア』である必要がないんですよ。前の文を『自己中』で片付けられてもいいんだけど、前者なしに後者をするとなると自分の気持ちとどう折り合いをつけて後者に時間を割き続けるのか考え続けないと難しいと思うんです。自分の楽しいことで影響を与えていく、というのがうまく合致してる人のQoLが高いこともわかる。そこであまり自分が楽しみきれていないのに、世の中に影響のあるソフトウェアを書くという認知的不協和に苛まれている今日このごろでございます。