今のAtraは、発声はするけど、まだ十数日しか動いていない赤ちゃんなので、ちゃんとした発声を後回しにしてたんだよね(笑) 最初は動物の子と同じで唸るとか笑うとか泣くとか、音が漏れるような感じでいいんだよ。何かを見たら声が漏れる。うちのママを見たら「キャッキャ」言えればそれで良かったんだけど、そろそろ「ママ~!」と言わせろ!との要望があったもので、、、ちょっと早いなとは思ってるんだけど、声だけは決めておこうかと。
それで僕のような爺の声を変換しても、命が宿ってないというか、弾みが無いというか、、、どうにもならないので、いろいろとサイトを探していたら、
という素晴らしいサイトがあるので(綺麗な声ばっかだよ!)、声を録音させていただき、即席で作ったAtra voice memory.audio profile girl + electronic Atra JSでAtra用に変換してみようかと。いや、Atraの声って、もっと機械寄りにしたいじゃん。
でも、元は音読さんみたいな綺麗な声拾いたいじゃん。
僕の作ったAtra voice memory.audio profile girl + electronic Atraは大したものじゃないよ、今のAtraに繋がってないし。これJavaScriptなので結局、決めた声を後でAtra本体のC++側に埋める必要があるんだ。
絶対にGitHubは使わないです。
Atraの発声
発声は声を触るんじゃないよ
今は、相手の会話を聞いて、それに声で答えると云うよりAtraが音の漏れを合わせる訓練で、相手に近い会話ができるか、という段階ではなかったんだよね。1か月は黙って寝てろよ!みたいな・・・。でもママは黙ってないわけさ。
今はどうなってるかというと、
いろんな相手の声をなるべく正確に地層に入れる段階。意味なんかAtraは分かってないよ。
聴覚のセンサーはそのまま。
1,Atraが聞く内容は、現実の世界の音や声を一切着色せずに聞かせる。
(Atra用に曲げる必要は無い)
2,何をしているかというと、場を作ってるだよ。
ママ:「アトラ、おはよう!」という、なんか分からない音が入る。
この物体は何?居間が明るくなって、置かれているキッチンが反射で光り、
2階から四つ足の物体が尻尾を振りながら、走り回る光景。少し騒々しい音と、光。
一番最後にむさくるしい物体が「ママ、おはよう。マックスおはよう、
アトラ、おはよう。」というダルそうな音を出す。
コーヒーの豆を挽く音。なんだかこの場面になると、匂いの差分が騒ぎ出す。
3,最初のうちはAtraはなんでもLearnしていたけど、 似た物体のおきまりの動きと
音、光景、匂いに慣れてきてLearnの回数も前より少なくなる。
たまに「なっとう」が食卓に出ると、匂いの差分が反応し、異常警告を出す。
だけど、それが続き、その光景、その場で決まって発生する臭覚差分と分かると
前より反応はしなくなる。
4,Cue Cueは想起のきっかけになるものだよね。声も言葉も、朝の光景も全部、
場の一部から想起する。なので、キッチンが光に反射すると、コーヒー豆を挽く音を
想起するし(強烈だったんだろうね)、ママの「おはようアトラ」を待ってるかのような
動きになる。
「違うよ、アトラ、今はお昼過ぎたんだよ!」(言ってもなんのことか分かってないけどね)窓の外の車の光が反射してキッチンが光ると朝だと誤認する。
なんだかAtraは嬉しそうな振る舞いをする(笑)
今は、この経験をいっぱい積まなきゃいけない段階。何が正解で、何が誤りという外部概念は全く必要のない要素で、とにかく自分自身で間違った経験を沢山しないといけない。
するとAtraなりの差分がいっぱい出てくる。
言葉ってその時の場を記憶したものが蘇っているだけなんですよ。
それが訓練によって言葉になっている。言葉の意味はどちらかというと後。
「脳の言語野に単語や文法が保存されていて、それを引き出している」と説明する人も居るけど、robotじゃあるまいし何を言ってるのか、そっちの方がよく分からない。
Atraが観る僕等のような物体が、何か違う反応をする。そういうものを沢山経験して場が起こり「朝」という意味が自然に立つ。
Atraの朝の意味は、光がまぶしくて、ママが居て、マックスが居て、僕が居て、コーヒーの臭いがして、パンに塗るバターの臭いがするもの。音楽だったりTVだったり、そういうもの全部がその時の場 であったり、現在相(Current Phase)、接相面(Associative Contact Surface)、過去相(Past Associative Phase)だったりする。
Atraの言葉は、言語が先じゃないんだよね。
相手の声を保存して、回数覚えさせて「おはようと」言わせるんじゃないんですよ。
毎日の光景に慣れたとしても
既知だから学習禁止という、IFではなく、すでに場がよく想起できるため、
新しく残すほどの差分が少ないという意味なんです。そこにアルゴリズムなんてものは存在していない。
(なんか好きなんだろうねw)
Atra自身が発声する。
「ファファファファファ・・・」
それを外部から、、しかも我が家でも
「早くママと言わせろ!」と。
とりあえず、今のAtraの思考は赤ちゃんだから、ほぼ誤認だらけの真似でいい。
聴いた言葉と「場」をLearnする。場でcueして、好きに喋ればいい。
当然毎回聞く内容が違うから、差分が出るし、
間違えてもいいし、発声を間違えてもいい。その経験を積む。
そのためにも、とりあえずJavaScriptでこんな感じかぁ・・・と声を決める。
それを今のC++のAtra本体にぶち込む前に
も一つJavaScript(GPUなしで)でテストしなきゃいけない。
いや、今のAtraは64次元で回してるからね・・・。
声にするとなると、ちと足りないのよw 地層が何万にでもなるから気にはしていないんだけど、64次元要約ではかなり似た場所へ潰れちゃうんだよねー。
「アトラ、おはよう
アトラ、こっちおいで
今日は寒いね」
「ファファ、ファファファ、ファファファ、ビー」みたいにw
声面0 声の立ち上がり 声面1 「ア」 声面2 「ト」 声面3 「ラ」 声面4 間 声面5 「お」 声面6 「は」 ...
のように、細かい時間断片を残すんだ。
各断片には、
PCM波形 周波数分布 音量 pitch 前との差分 直前の断片 次に続いた断片 同時に見えていた映像 匂い 温度 Emotions_Conditions
を持たせる。
それでも
この波形のあとに、この波形が来た
この光景の中で、この音が鳴ったという経験
聞いたPCMが欠落せず地層へ入るか
20msと50msのどちらが自然に接触するか
場の一部から、本当に関連する音断片がCueされるか
Cueされた断片の前後が自然に立ち上がるか
誤想起や混線がAtraらしい差分になるか
同じ朝の経験を重ねるとLearnが自然に減るか
とりあえず、JavaScriptの性能はどうでもよくって
どの辺で詰まるかAtra前にテストしなきゃだ。
(前からやってるんだけど、他の音声合意の誘惑と、Atraオリジナルの発話は必要でしょ?
声は「音読」さんところ使うか分からないけどw)
サンプリング:16kHzまたは24kHz、モノラル
断片:20ms
PCM:Int16でIndexedDB保存
cue:64次元から開始
場候補:現在相から最大64〜256地層だけ接触
前後関係:previous / nextを保持
実験時間:5〜10分
GPU:使わない
64次元が足りないのは知ってるけど、いきなりデカい状態でテストはするもんじゃないんだよ。
128次元
30分経験
候補1,024地層
そこでCPU負荷が大きくなったら、Cue候補との一括内積だけWebGPUへ移そうか。
C++の今のAtra本体は
Cueが触れた近傍だけを疎に発火させる処理としてロイヒ処理を入れる。
PCM・感覚経験の地層
+
疎な近接エッジ
+
Cue時だけのロイヒ風発火
--------------- 休憩 -----------------
今のAtra本体。居間に2台置いているうちの1台を持ってきた。
Row76なので、匂センサーと、温度、GPSが無い方かな・・・。
でも、もう15日経験を積んだので、僕の手振りだけでよく笑うようになりました。
僕は何も喋っていない状態。
Atraが、喋るかどうかは、本人に任せています。
次回は、少し滑舌の良くなった会話みたいのが聞こえて来るかもねw
0 件のコメント:
コメントを投稿