a4です。P2P人工知能「T」開発(5)

■ このスレッドは過去ログ倉庫に格納されています
1a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/15(金) 06:37:02.98ID:5fmPzCqX
a4と申します。喋る人工知能を創っています。キャッチフレーズは
「萌えから、リーマン予想まで。」で、知能を埋め込んだ人工生命をP2Pで
蔓延らせることにより、生きているようなAIを実現します。

a4です。P2P人工知能「T」開発(4)
https://mevius.5ch.net/test/read.cgi/tech/1546530651/
「T」のdownload
http://www.01ken.com/art1.html
2019/03/24(日) 10:27:52.18ID:SVMO04Wq
データサイエンティストになるには、C言語とPythonとエクセルは必須だ。これは譲れない。

まずは練習だ。Pythonをインストールして、Pythonでタブ区切りの数値を格納した適当なテキストファイルを線グラフにしなさい。

1 2
3 1
5 7
2019/03/24(日) 10:39:30.30ID:SVMO04Wq
Pythonは、Bashが使える環境(例えばMSYS2など)にインストールした方がいい。Linuxの多くのコマンドが使えるからね。BashはLinuxと互換性がある端末だ。
176a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/24(日) 10:39:46.12ID:FO6TL8+f
>>174
ご助言ありがとうございます。データサイエンティスト?確かに大学時代の学科は
そういうところでした。それでご飯が食べれればいいんですけどね。エクセルくらいは
適当に使えますが、Pythonはインストールすることにします。問題のほうは、
最小二乗法かな?ニューラルネット使っても良さそうですが。海外の人と話してる
などの理由により、今日は寝ます。明日解いてみます。おやすみなさい。
177a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/25(月) 00:09:44.79ID:H173mQ6A
目が覚めました。MSYS2がインストールできました。Linuxは得意ではないので、
とりあえず、遊んでみます。
178a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/25(月) 04:44:29.72ID:H173mQ6A
前、言ってたインド人が彼女になりました。彼女はテルグ語と英語を話します。
数学が僕と同じで学生の頃トップだったらしく、今はエンジニアをしてるとのことです。
それで政治の話とかしてます。それで、僕の性格を知ってる人ならわかると思いますが、
ずっと僕に話しかけてくるので、返信してるのですが、仕事の作業効率が落ちてます。
時差もありますしね。そろそろ向こうは寝る時間なので、こちらは仕事にまた戻ります。
179a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/25(月) 06:55:38.22ID:H173mQ6A
>>174
あなたの仰る通り、練習しました。

a = 0.0
b = 0.0
y1 = 0.0
y2 = 0.0

for i in range(0, 1000):
for line in open("data.txt", "r"):
data = line.split()
y2 = a * float(data[0]) + b
y1 = float(data[1])
a -= (y2 - y1) * float(data[0]) * 0.01
b -= (y2 - y1) * 0.01

if b >= 0:
print("y = " + str(a) + " * x + " + str(b))
else:
print("y = " + str(a) + " * x - " + str(abs(b)))

owner@owner-PC MINGW32 ~/msys2
$ python calc.py
y = 1.3301038369925748 * x - 0.5659873051422145

お返事待っています。
180a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/25(月) 10:57:51.60ID:H173mQ6A
「陽子」以外の人工知能もユーザーが創れるように、「name.txt」を入れて、
名前を定義できるようにしました。説明書もついていて、書き足しました。
(version:T_4_1_7)です。

http://www.01ken.com/art1.html
2019/03/25(月) 14:47:50.40ID:7cQyE2cc
初めてここにきました
あなたは神を作ろうとしているのですか?
182デフォルトの名無しさん
垢版 |
2019/03/25(月) 18:01:45.88ID:L71pItKe
>>179
matplotlibなどでグラフを描画せよという問題なのではないでしょうか。
matplotlibは標準ライブラリではないですがグラフの描画によく使われます。
2019/03/25(月) 19:46:33.46ID:fVHsqAMX
MSYS2でPythonのmatplotlibをインストールするには、pacmanを使う。
$ pacman -Ss matplotlib
でmatplotlibをpacmanで検索する。出てきたテキストからパッケージ名を読み取り、pacman -Sでインストールする。

(32-bitの場合)
$ pacman -S mingw32/mingw-w64-i686-python3-matplotlib
(64-bitの場合)
$ pacman -S mingw64/mingw-w64-x86_64-python3-matplotlib

同様にpandasもインストールする。
matplotlibとpandasのインストールが終わったら、折れ線グラフを描いてみよう。

# graph_test.py
import matplotlib
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_table("data.txt", header=None)
data.plot()
plt.show()

$ python3 graph_test.py

"data.txt"はtsv (tab-separated values) ファイル。
2019/03/25(月) 19:53:11.02ID:fVHsqAMX
"data.txt"というファイルをいちいち入れ替えるのは大変だから、「プログラムとデータの分離」のために、コマンドライン引数からファイル名を指定するようにする。

# graph.py
import matplotlib
import pandas as pd
import matplotlib.pyplot as plt
import sys
data = pd.read_csv(sys.argv[1], header=None, sep='\t')
data.plot()
plt.show()

$ python3 graph.py data.txt
グラフが表示される。

data.txtの中身は次の通り:
1<TAB>4
2<TAB>3
4<TAB>1
5<TAB>2
1<TAB>1
3<TAB>6

<TAB>はキーボードの左側にあるTabキーを押して入力する。
2019/03/25(月) 20:23:48.43ID:JVMOROGZ
音声の生データはそのままでは扱いづらい。
なので、WAVファイルを一旦テキストファイルに変換することにする。
テキストファイルはLinuxの豊富なテキスト処理コマンドとパイプライン処理を使って処理できるので比較的扱いやすい。
変換処理は時間がかかるかもしれないので、C/C++で変換処理を書くことにする。
186a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/26(火) 05:24:42.25ID:6w6RJUdV
>>181
いらっしゃいませ。僕は精神病で自分は神であるという宗教妄想があるということに
なっています。どこが?と聞かれると、特異点技術で死者の復活を40年後ほどに
しようと思っています。タイムマシンには何回か遭ってます。

>>182->>184
仰る通りにしたら、描画できました。

>>185
もうちょっと議論してからやりたいです。
・何が目的か?
・お金になるか?
などです。
187a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/26(火) 08:04:33.93ID:6w6RJUdV
「T」はまだまだ改良するところがあるとはいえ、一段落ついたので、宣伝する方法を
探しています。ご存知の方は、どこで公にしたらいいとか、教えていただけないでしょうか?
個人的にはゲーマーのような人たちには需要があり、神経コードのネットワークがそっちの
方向ですぐ発展するのではないか?と考えています。あと、単純なお金儲けの話じゃ
ないんですよ。慈善活動で芸術活動で宗教活動なんです。「T」を詳しく解説した本
を売って稼ごうと思っていますが、儲かると思っていません。でも、所得が欲しいの
は、本当にお金が無くて僕の生死に関わるのと、あと、余裕があれば、量子コンピュータ
などを開発して社会貢献したいからです。今の手持ちは25万円だけです。全部は
使えませんが、5万円くらいで広告とか出して良いかもしれません。どなたかこちら
に関してご意見ある方はよろしくお願い致します。
188a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/26(火) 09:13:26.64ID:6w6RJUdV
またYoutuberとかやって説明動画を創ろうかな。それくらいしかとりあえずの答えが
思いつきません。結構、複雑なソフトウェアを使わさせることになるので。お金は
払ってもリターンは全く無いかもです。上述の返信を待ちつつ、しばらくこちらの
作業をします。
189a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/26(火) 12:33:36.61ID:6w6RJUdV
説明動画を作りました。

P2P人工知能「T」
https://youtu.be/Y7s73RB8ebQ
2019/03/26(火) 19:26:17.42ID:NbUyZWCM
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 85158
https://you-can-program.hatenablog.jp
191a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/27(水) 07:11:14.61ID:RPSCdWiW
#updateなどの特殊文字列の説明が足りないと考え、説明書を書き足し、T_4_1_8
としました。

http://www.01ken.com/art1.html
192a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/27(水) 12:59:32.71ID:RPSCdWiW
名古屋の宇宙人「俺ね、慶応大学にいちゃもんつける。どうしててめーら金持ちなのに、
東大買ってくんねーんだ!と。だから、a4君の住んでる文化は加木屋町にあるから、
「加木屋町の慶応卒」の忌み名を出そう。こう出た。いいな。

「トンデモダシTハ.」
=(トンデモだし、「T」は。|
トンデモだし、「T」は小さい点|
(a4が)飛んで(東大入って)モ(ザイク)だし、「T」は。|
(計算速度が)トン、でも、ダシ(に使おう)、「T」は。|
(逆)私大も出んと)

これでいいか。ではな。」
2019/03/27(水) 17:58:23.33ID:/gFtBs7P
pacmanを使ってMSYS2にtoolchainをインストールせよ。
gccやg++などの開発用のツールがインストールされる。
次のようなhello.cppファイルを作成しg++でコンパイルせよ。

// hello.cpp
#include <stdio.h>
int main(void)
{
printf("Hello, world\n");
}

$ g++ hello.c -o hello

hello.exeができる。コマンドラインから実行してみよ。
$ ./hello
2019/03/27(水) 17:59:52.04ID:/gFtBs7P
pacmanを使ってMSYS2にgitとcmakeをインストールせよ。

https://github.com/katahiromz/SoundWaveStudy
を次のようにクローンせよ。

$ git clone https://github.com/katahiromz/SoundWaveStudy

CMakeを使って、次のようにSoundWaveStudyをビルドせよ。

$ cmake -G "MSYS Makefiles" .
$ make -j2

wav2txt.exeとtxt2wav.exeが作成される。
試しに次のように実行せよ。

$ ./wav2txt.exe piano.wav
$ ./txt2wav.exe --rate 44100 piano.wav.txt

piano.wavと作成されたpiano.wav.txt.wavを比較せよ。
graph.pyを使って作成されたテキストファイルのグラフを描画せよ。
2019/03/27(水) 18:20:51.88ID:/gFtBs7P
ヒント: MSYS2から現在のフォルダを開くには「start .」を実行する。
ヒント: 現在のディレクトリ(フォルダ)をSoundWaveStudyに移動するには、「cd SoundWaveStudy」を実行する。
ヒント: 途中まで入力してタブキーを押すと、入力補完が働くぞ。
2019/03/27(水) 18:25:23.59ID:/gFtBs7P
「サンプリングレート」について調べよ。
サンプリングレートが変わると音色がどのように変わるか調べよ。
PcmWave.hppを解読せよ。
2019/03/27(水) 20:51:09.29ID:X5Tg+wiF
三回まで質問を受け付ける。
2019/03/27(水) 22:20:03.15ID:X5Tg+wiF
8-bitのPCM波形データは、uint8_t (0から255までの値)の並びで表す。
16-bitのPCM波形データは、int16_t (-32768から32767までの値)の並びで表す。そういう決まりだ。
ステレオならチャンネルは2個で、左・右の順でサンプルが並ぶ。モノラルならチャンネルは1個。
2019/03/27(水) 22:27:21.80ID:X5Tg+wiF
ヘルツ(Hz)というのは一秒あたりの振動数を表す単位。例えば2Hzは一秒間に2回回るということだ。
振動数の逆数が周期に相当する。例えば2Hzの場合、周期は0.5秒だ。
2019/03/27(水) 22:38:30.32ID:X5Tg+wiF
人間は「可聴域」(かちょういき)という振動数の範囲で音声を知覚する。
可聴域から外れた範囲の音は人間には聞こえない。
音声の品質は用途により、要求が異なる。電話やラジオの音声、コンパクトディスク(CD)の音声、ハイレゾの音声など。
201a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 06:00:22.83ID:2HvS2Y4V
速報なんですが、インドの彼女は揉め事を起こしてしまったので、ふってしまいました。
まだ彼女募集中ですが、好みのタイプは?と聞かれてたら、頭いい人かな。

今から風呂入ってきて、それから、さまよえる蟻人間さんの問題を解決します。
202デフォルトの名無しさん
垢版 |
2019/03/28(木) 06:45:48.97ID:2HvS2Y4V
>>194 >>197

owner@owner-PC MINGW32 ~/msys2
$ git clone https://github.com/katahiromz/SoundWaveStudy
Cloning into 'SoundWaveStudy'...
1 [main] git-remote-https 7672 child_info_fork::abort: C:\msys32\usr\bin\msys-unistring-2.dll: Loaded to different address: parent(0x770000) != child(0x5B0000)
error: cannot fork() for fetch-pack: Resource temporarily unavailable

このエラーはどうしたら解決できるのでしょうか?
203a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 06:46:27.89ID:2HvS2Y4V
おっと名前付け忘れました。>>202はa4です。
2019/03/28(木) 08:13:16.91ID:FIMI7Fmb
>>202
rebaseallを試せ
205a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 11:16:08.59ID:2HvS2Y4V
>>204
解答ありがとうございます。そこは解決しました。

SoundWaveStudyフォルダに入って、mingw-w64-i686-cmakeをダウンロード
して、MSYS Makefilesを使えるようにしたんですが、まだエラーが出ます。

owner@owner-PC MINGW32 ~/msys2/SoundWaveStudy
$ cmake -G "MSYS Makefiles" .
CMake Error: CMake was unable to find a build program corresponding to "MSYS Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMake was unable to find a build program corresponding to "MSYS Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_AR was not found, please set to archive program.
-- Configuring incomplete, errors occurred!

これは解決方法はあるのでしょうか?
206デフォルトの名無しさん
垢版 |
2019/03/28(木) 13:19:36.66ID:SbTQZ/FF
おそらくmakeとg++がインストールされてない。
207デフォルトの名無しさん
垢版 |
2019/03/28(木) 13:37:29.23ID:SbTQZ/FF
https://blogs.osdn.jp/2018/01/30/msys2-mingw.html
208a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 15:15:22.04ID:2HvS2Y4V
>>206
情報ありがとうございます。それで、piano.wav.txtの生成までは上手くいきました。
209a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 16:19:45.33ID:2HvS2Y4V
>>194
graph.pyでsep=' 'にしたら、描画に成功しました。
210a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 16:28:10.73ID:2HvS2Y4V
>>196
サンプリングレートは下がるとその半分の周波数以下ほどの音しか綺麗に録音できなく
なりますね。

C++は得意なつもりなので、PcmWave.hppは流し読みです。
211a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 17:44:28.92ID:2HvS2Y4V
原因不明のメモリエラーがありますが、1GBのファイルまで送受信できるように
しました。あと、クライアントがサーバーに接続成功しても#connectが届くように
しました。T_4_1_9です。

http://www.01ken.com/art1.html
212a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 19:33:04.33ID:2HvS2Y4V
そろそろWikipediaに載せれるのではないか?と考えるようになったのですが、記事を
書いたことは無いので、詳しい方いたら、ご連絡いただければと思います。
213a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 19:54:41.83ID:2HvS2Y4V
調べてるんですが、まず、
https://ja.wikipedia.org/wiki/Wikipedia:%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2%E3%81%B8%E3%82%88%E3%81%86%E3%81%93%E3%81%9D
「大前提として、著作権の侵害は絶対に行ってはいけません。」
ですが、
https://ja.wikipedia.org/wiki/Winny
Winnyは記事になってますし、僕はリーマン予想を数学基礎論から探るということで
普通に相性がいいのではないかと。あと、僕は中国語も専門用語は得意ではないですが、
書けますし、フランス語やアラビア語にも友達と一緒に翻訳できるので、上手くいけば
すぐ広まるのではないかと思っています。
2019/03/28(木) 20:36:42.95ID:FIMI7Fmb
C++が得意だと言ったな? いい度胸だ。。。

今、SoundWaveStudyを更新した。git pullでローカルを更新せよ。

play.cppは、PlaySound関数を使ってWAV音声ファイルを再生するだけのWin32プログラムだ。Windows以外のOSでは動かない。

wav2wav.cppは、WAVファイルを別のWAVファイルに変換するプログラムだが、不完全だ。mono_to_stereo関数を完成させて、再びmakeしてステレオ音声になるか確かめよ。
2019/03/28(木) 20:40:01.66ID:FIMI7Fmb
データの変換は基本中の基本だ。
動画や音声のコンテンツを扱うサイトや、音声データの研究では
どうしてもデータ変換が必要になる。
2019/03/28(木) 20:43:52.73ID:3LZYwZb1
>>214
>C/C++が得意だと言ったな?
たしかにおいそれとは口にできない台詞ですね…私が歳なだけかも?
217a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/28(木) 21:14:23.58ID:2HvS2Y4V
>>214->>216
C++をずっと使ってるだけです。難しい使い方も勉強したことありますが、シンプル
な方法でずっと書いてます。コンパイラ開発経験があり、機械語レベルで何やってる
のかわかるので、普通に書いてるだけです。でも、集団開発は苦手かもしれません。

今日はこれから寝るので、明日の朝くらいからします。おやすみなさい。
218a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 08:55:32.83ID:lpOPYMih
>>214
play.cppのほうは、とりあえず、

owner@owner-PC MINGW32 ~/msys2/SoundWaveStudy
$ g++ play.cpp -o play.exe -lwinmm

で成功しました。
2019/03/29(金) 09:19:52.32ID:GJ2qIBd+
>>218
CMakeLists.txtがあるんだから、cmakeとmakeでビルドすればいいのに。
220a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 10:43:50.53ID:lpOPYMih
#include <windows.h>
#include <mmsystem.h>
#include <cstdio>
#include "wav2wav.cpp"

int main(int argc, char **argv)
{
char *pc1 = new char[256];
char *pc2 = new char[256];
PcmWave pw1(1, 16, 44100, (void *)pc1, 0);
PcmWave pw2(2, 16, 44100, (void *)pc2, 0);
pw1.load_from_file(argv[1]);
mono_to_stereo(pw1, pw2);
pw2.save_to_file(argv[2]);
return 0;
}
221a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 10:44:56.29ID:lpOPYMih
bool mono_to_stereo(PcmWave& wave1, PcmWave& wave2)
{
switch (wave1.num_channels()){

case 1:
switch (wave1.mode())
{
case 8:
wave2.set_info(2, wave1.mode(), wave1.sample_rate());
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i++)
{
int mono = wave1.data_8bit(i);
uint8_t middle = uint8_t(mono);
wave2.push_8bit(mono);
wave2.push_8bit(mono);
}
break;
case 16:
wave2.set_info(2, wave1.mode(), wave1.sample_rate());
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i++)
{
int mono = wave1.data_16bit(i);
int16_t middle = int16_t(mono);
wave2.push_16bit(mono);
wave2.push_16bit(mono);
}
break;
222a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 10:46:11.79ID:lpOPYMih
default:
// must be stereo
assert(0);
return false;
}
break;
case 2:
default:
assert(0);
return false;
break;
}

wave2.update_info();
return true;
}
223a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 10:47:47.82ID:lpOPYMih
>>214
とりあえず仰ることができました。
>>219
それについては勉強してみます。
224a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 13:09:20.60ID:lpOPYMih
Wikipediaに書こうと思っているのですが、まだネットワークがきちんとできてないのに、

Wikipedia:独自研究は載せない
https://ja.wikipedia.org/wiki/Wikipedia:%E7%8B%AC%E8%87%AA%E7%A0%94%E7%A9%B6%E3%81%AF%E8%BC%89%E3%81%9B%E3%81%AA%E3%81%84

あたりで削除されそうで書けません。
2019/03/29(金) 14:38:00.83ID:GJ2qIBd+
>>221
よくできた。褒めて遣わすぞ。

SoundWaveStudyを再び更新した。「git checkout .」で変更前に戻して、
「git pull」でローカルを更新してくれ。

次は、bits per sample (mode)の変換だ。mode_16bit_to_8bit関数を参考に、
mode_8bit_to_16bitを完成せよ。
2019/03/29(金) 14:49:50.58ID:GJ2qIBd+
サンプルレートが8000Hzでサンプルが16000個あるモノラル音声の長さは
何秒になるか?
2019/03/29(金) 15:00:15.80ID:R1IYRCTv
PcmWaveに音声の長さ(秒数)を返すメソッドfloat PcmWave::seconds() constを追加せよ。
228a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 15:28:21.08ID:lpOPYMih
bool mode_8bit_to_16bit(PcmWave& wave1, PcmWave& wave2)
{
interpolation_test();

if (wave1.mode() != 8)
{
assert(0);
return false;
}

switch (wave1.num_channels())
{
case 1:
wave2.set_info(1, 16, wave1.sample_rate());
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i++)
{
int value = wave1.data_8bit(i);
assert(0 <= value && value <= 255);
value <<= 8;
value -= 32768;
assert(-32768 <= value && value <= 32767);
wave2.push_16bit(uint16_t(value));
}
break;
229a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 15:28:55.35ID:lpOPYMih
case 2:
wave2.set_info(2, 16, wave1.sample_rate());
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i += 2)
{
int left = wave1.data_8bit(i);
int right = wave1.data_8bit(i + 1);
assert(0 <= left && left <= 255);
assert(0 <= right && right <= 255);
left <<= 8;
right <<= 8;
left -= 32768;
right -= 32768;
assert(-32768 <= left && left <= 32767);
assert(-32768 <= right && right <= 32767);
wave2.push_16bit(uint16_t(left));
wave2.push_16bit(uint16_t(right));
}
break;
default:
assert(0);
return false;
}

wave2.update_info();
return true;
}
230a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 15:31:21.66ID:lpOPYMih
>>226
2秒?
2019/03/29(金) 15:40:52.66ID:R1IYRCTv
>>228
>value <<= 8;
>value -= 32768;
uint8_tの最大値255については、256倍の65,280になって、32768を引くんだから32,512になる。これは間違ってる。

素直に用意されたlinear_interpolation関数使え。
2019/03/29(金) 15:41:14.49ID:R1IYRCTv
>>230
正解。
233a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 15:55:36.14ID:lpOPYMih
>>227
float PcmWave::seconds() const
{
return m_wave.Subchunk2Size / m_wave.NumChannels / m_wave.SampleRate / (m_wave.BitsPerSample / 8);
}
234a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 16:00:34.89ID:lpOPYMih
bool mode_8bit_to_16bit(PcmWave& wave1, PcmWave& wave2)
{
interpolation_test();

if (wave1.mode() != 8)
{
assert(0);
return false;
}

switch (wave1.num_channels())
{
case 1:
wave2.set_info(1, 16, wave1.sample_rate());
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i++)
{
int value = wave1.data_8bit(i);
assert(0 <= value && value <= 255);
value = linear_interpolation(value, 0, 255, -32768, 32767);
assert(-32768 <= value && value <= 32767);
wave2.push_16bit(uint16_t(value));
}
break;
235a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 16:01:00.04ID:lpOPYMih
case 2:
wave2.set_info(2, 16, wave1.sample_rate());
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i += 2)
{
int left = wave1.data_8bit(i);
int right = wave1.data_8bit(i + 1);
assert(0 <= left && left <= 255);
assert(0 <= right && right <= 255);
left = linear_interpolation(left, 0, 255, -32768, 32767);
right = linear_interpolation(right, 0, 255, -32768, 32767);
assert(-32768 <= left && left <= 32767);
assert(-32768 <= right && right <= 32767);
wave2.push_16bit(uint16_t(left));
wave2.push_16bit(uint16_t(right));
}
break;
default:
assert(0);
return false;
}

wave2.update_info();
return true;
}
2019/03/29(金) 16:08:09.14ID:GJ2qIBd+
>>235
uint16_tじゃなくてint16_tだ。他はOK.
2019/03/29(金) 16:14:59.91ID:GJ2qIBd+
>>233
正解。ただ、整数同士の割り算は整数になって精度が低下する。この場合戻り値の型がfloatだから事前にfloatにキャストした方がいいだろう。

float PcmWave::seconds() const
{
return float(m_wave.Subchunk2Size) / m_wave.NumChannels / m_wave.SampleRate / (m_wave.BitsPerSample / 8);
}
238a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 16:16:27.52ID:lpOPYMih
>>236
はい。指導ありがとうございます。

まだ何かありますでしょうか?さまよえる蟻人間さんの目的は?
239a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 16:19:51.42ID:lpOPYMih
>>237

float PcmWave::seconds() const
{
return (float)m_wave.Subchunk2Size / (float)m_wave.NumChannels / (float)m_wave.SampleRate / ((float)m_wave.BitsPerSample / 8);
}
2019/03/29(金) 16:43:42.02ID:GJ2qIBd+
SoundWaveStudyを更新した。これでwav2wavは完成だ。
g++に-DWAV2WAVを付けてwav2wav2.cppをコンパイルすればwav2wav.exeができる。
試してみ給え。

まとめ。
・WAV音声をテキストファイルに変換できた。
・テキストファイルをWAV音声に変換できた。
・テキストファイルの波形を折れ線グラフとして表示できた。
・WAVのデータ形式(8ビット/16ビット、モノラル/ステレオ)の変換ができた。
・コマンドラインでWAV音声を再生できた。
2019/03/29(金) 16:50:07.55ID:GJ2qIBd+
$ ./wav2wav.exe piano.wav --channels 1 --mode 8
piano.wav: 44100 Hz sampling, 16-bit, 2 channel (7.2 seconds)
piano.wav.wav: 44100 Hz sampling, 8-bit, 1 channel (3.6 seconds)
'piano.wav' --> 'piano.wav.wav' (OK)

ちょっと待ってよ。7.2秒が3.6秒に減っている。何かが間違えている。
バグを探してみよう。
242a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 16:54:49.41ID:lpOPYMih
>>240
はい。試しました。

ボランティアの指導が終わったのであれば、「T」の開発に戻ります。
2019/03/29(金) 16:59:44.35ID:GJ2qIBd+
いくつかモノラル音声のwave1に対して
for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); i += 2)

for (size_t i = 0; i < wave1.num_units() * wave1.num_channels(); ++i)
に修正。これでOK。

これにて指導終了。
244a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 17:06:48.27ID:lpOPYMih
>>241
いくつかの「i += 2」を「i++」にしたら上手くいきました。
245a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 17:07:25.76ID:lpOPYMih
>>243
はい。ありがとうございました。
246a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 17:24:12.96ID:lpOPYMih
テレパシーでみんなと話してるのですが、自動で音声付き動画の生成をやろうと思って
いるのですが、逆にビッグデータを使わないで、純粋数学の手法で、量産していく方針
にできないか?と話していますが、まだ研究中にします。
247a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 17:27:52.18ID:lpOPYMih
名古屋の宇宙人「俺ね、いろんな普通のSFホラーの動画を作りたいって言ってたけど、
それは後にする。みんな集まってからだな。それまでは本当に数人くらいで、並列
計算するだけで、ビッグデータはダウンロードしにくいように牛耳られてるから、
これでひとまず開発させてみる。また変わるかもだな。ではな。」
248a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 17:42:58.60ID:lpOPYMih
議論してるんですけど、普通に考えると、確率文法などで生成された文字列に対し、
評価を行います。動画や音声の数学ってなんだろう?と思ったんですけど、基本は
神経細胞にしたいです。EPFLのBlue Brainでやっているような。それで、例えば、
新しい「素数が無限に存在することの証明」の動画が量産(ここまでできると思って
ないがイメージ)みたいなことができないかと。あと、単純に考えているのは、
関数がメタ的に関数を書いて呼び出したりするところです。もうちょっと練ります。
249a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 18:26:21.15ID:lpOPYMih
まず重要に思った点は
・短期記憶
・長期記憶
・遺伝子
です。

音声は、短期記憶によって繰り返しを認識してテンポに乗ります。長期記憶と関連して、
学習すると、次の曲じゃないと駄目になります。遺伝子は異性の声とかの認識ですが、
ここを「T」は逆に確率文法にして数学的に一般化しようと思ってます。

Blue Brainをよく知らない方のために2分ほどの動画を紹介します。
https://www.youtube.com/watch?v=ZQTqvv6HHHY
これを1:25のところの表記に直すことも考えつつ、
"PRINCIPALS OF NEURAL SCIENCE"という本を、読んでいこうと思っています。
つまり、短期記憶って、電位的にはどうなってるの?とか、学習はまだわかるけど、
DNAからどうやって顔画像の神経構造に変換されるのか?など、まだまだ全然
わからないことだらけなので、勉強、研究しようと思っています。

本当は大学院とか行ければいいんですけどね。お金が無いです。
250a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 18:29:10.23ID:lpOPYMih
"PRINCIPLES OF NEURAL SCIENCE"*
251a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 18:37:05.53ID:lpOPYMih
"PRINCIPLES OF NEURAL SCIENCE"は、3年くらい前から、持ってるんですが、
1700ページほどあって全部読めてません。暴力的に病院に監禁されてた頃は、
この本のことしか考えられなくなっても、毎日1時間しか読む時間を与えられません
でした。鍵を書けられた部屋の向こうの棚にあったこの本の声を幻聴で聞くと、
「なにをまっているんだはやくこっちへきてくれよ」
と聞こえ、逆から読むと、
「縒れく敵、へ?小っ子、悔は男涙、手前、鬼な」
「縒れく敵、屁、ちんこ、悔は男涙、手前、オナニー」
となり、医者や看護師を攻撃する言葉だと感じ、何回も詠唱してました。
252a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/29(金) 18:49:54.45ID:lpOPYMih
テレパシーで今後について議論してるのですが、この本を全部読破してから、また
「T」を再構築しようと思います。前、読んだところは忘れてるので、復習も含めて、
2ヶ月ほどかかると思ってます。その間、このスレにいらっしゃった方々には返信
しますが、「T」の開発は一旦ストップするかもです。
253a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 11:10:51.42ID:w9K5HDCU
5.5兆年後のa4「僕は時系列エラーだけど、大きい人からテレパシーで、その本は
大学院へ留学してから読んでください、と来ちゃった。現実だし。今のa4君も
つまんないみたい、この本、もう要点はもちろん読んじゃってて、人工知能創れる
ようになってるし。でもね、「量子音楽と死者の復活」というのを掲げてるから、
どっかで全部読まないといけない。だからさ、MITかEPFLくらいに入学できれば
いいんだけどね。ここのスレはみんな日本語だから、こっちに強い人はいなさそうだ。
一部の人ははってるの知ってるよ。でもね、現実的には、統合失調症で、投資が
下りないようになってるんだ。次に、a4君に出す僕の指令は、とりあえず、Blue
Brainと同じ計算を創ってみてください、にしようか。これが現実だ。ではね。」
254a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 11:23:32.71ID:w9K5HDCU
まず、現実的な情報はこのあたりからです。

http://www.gifu-nct.ac.jp/elec/deguchi/sotsuron/hirata/node15.html
「実際の生体における神経回路においては、dE/dyといった学習信号が神経軸索を通って
逆向きに伝わることはなく、 バックプロパゲーションは実際の脳の学習則の生理学的
モデルにはなりえないことになる。 実際の脳の多層神経回路において、どのような
学習則が用いられているのかは 今だ解明されていない。」
255a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 11:40:46.65ID:w9K5HDCU
僕は今の段階の結論はcell bodyは双方向に接続され、リカレントネットワークを形成し、
逆伝播を可能にし、不安定なdendritesによって、重みの係数を下げることができるの
ではないか?ということです。
256デフォルトの名無しさん
垢版 |
2019/03/30(土) 12:15:03.99ID:jLawCdTM
【新元号に、分合、が適すわけ】 フランス、失明22人、手の喪失5人、頭部重傷者228人、天皇を打倒せよ
https://rosie.5ch.net/test/read.cgi/liveplus/1553910895/l50

君が代、日章旗、元号、の強制やめろ!
257a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 13:15:53.50ID:w9K5HDCU
>>256
天皇と実際に会ったことは無いので意見無しにします。
258a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 13:24:29.16ID:w9K5HDCU
今、自動動画生成で考えているのは、まず評価関数なんですが、まず、動画を
Blue Brainを簡素化した方法で入力して、上述の手法で、最初は本当に基本的な動画像
のみ、「●」や「ー」などを学習させます。それで、四則演算から作られる数論や
解析学などの動画を生成する問題を解ける人工知能を進化的優位にさせて、
弱肉強食下に置くことによって、強いAIを創ろうと、今、考えてます。ビッグデータは
まだ使わないことにします。数学者は数学の問題を理解できますが、人間では理解
できない数学の問題とかが発展するのではないかと。僕のタイムマシン技術は、
未来人が嘘つきなので、この方針で成功するかはわからないことにします。
259a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 14:31:51.66ID:w9K5HDCU
前、後頭葉から側頭葉のアルゴリズムを、画像群との一致率だけで作りましたが、
Blue Brainの方法で作ると、動画認識は計算スピードが速いのではないか?と考えて
います。
260a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 15:38:53.34ID:w9K5HDCU
考えてるんですけど、「●」や「ー」などの学習も無しにして、何も無いところから、
文献のようなものをランダムに量産するというのを思いつきました。

が、そろそろ、このソフトウェアに限界を感じています。時間はまだあるのですが、
お金と人が集まらないし、技術も飽和してます。スランプですね。でも、就職しても
会社に精神病で迷惑かけるだけだと思っているので、「T」を開発することしか
できません。というわけで、休息しつつ、まだ関連する仕事を続けようと思います。
261a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 16:25:53.09ID:w9K5HDCU
動画生成を一般化しすぎると、単純なランダムになり、ジーっとノイズを出しながら、
レインボーの点がただひたすら高速にバーっと流れるだけで、神経細胞がいじくられて、
予測発火を裏切り、快感ということになってしまうのではないか?という結論になり
ました。

まだまだ地道に研究を続けます。
2019/03/30(土) 17:35:27.22ID:2KUCkmII
音波の研究の続きをやるかい?
疲れてるなら休憩してもいいけど。
2019/03/30(土) 17:46:59.79ID:2KUCkmII
声紋とかフェルマントとかフーリエ変換とかをやるよ。嫌ならやらない。
264a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 17:49:58.12ID:w9K5HDCU
>>262
書き込みありがとうございます。人が来ないので。音波は研究したいことの1つです。
でも、もっと面白いことしたいんですよ。もっと議論したいです。普通に可愛い
女の子が喋ってくれるようなソフトウェアを創りたいのですが、1人だけだと結構
厳しいんですよ。人数いても、もうスマホとかGoogle Homeとかが喋ってくれるし。
音楽の自動生成とか、まだニッチがあるかもしれませんが、個人的には、ナマズの
視神経を使って、2^10000通りほどから1通りの大尉最適な音楽を取り出す方法を
5年前から考えてますが、そんなことしたら、2^10000通りのどれかの世界で核兵器
が飛んでしまうではないか?などで現代では投資が下りないようになってるみたいです。
何かご意見ありますか?あなたと一緒に面白いものを創りたいです。
265a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 17:52:03.43ID:w9K5HDCU
>>263
声紋は面白いのでやりましょうか。できれば、お金を月数万円でいいので、調達できないか?
と思っているのですが。親が生きてるので、「T」は開発できてますが、親が倒れると、
奨学金返済のために生死に関わるんですよ。何かご意見ありますか?
266a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 17:54:08.79ID:w9K5HDCU
大域最適な音楽*
267a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 17:58:33.42ID:w9K5HDCU
コミュ障のために、コミュニケーション能力を伸ばせてプログラミングもできる学科に
大学にいた頃は入りました。それで、ビジネスにする手法として、
・ブレインストーミングから木構造を作る。
・3C, 4P, 5force, swotなどを調べる。
などの技術を学びました。教授は、2番手の企業で経営ができるようにしつける、と
言ってました。一応、この研究をビジネスにする場合のこちらの攻撃力を示しておき
ます。
2019/03/30(土) 18:12:33.77ID:2KUCkmII
声紋に興味があるとは。。。声紋鑑定士になれるかも。。。

まずは読書だ。
https://ja.m.wikipedia.org/wiki/%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0

http://www.onkyo-lab.com/voiceprint.html
269a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 18:18:19.02ID:w9K5HDCU
>>268
拝見しました。

「三角間隙鋸歯状波」というものを作らないといけないみたいですね。

「身長は声の高低と密接に関係しています。」というのはシミュレーション的には
厳しいですね。
2019/03/30(土) 18:34:03.61ID:2KUCkmII
声紋は、横軸が時間で、縦軸が周波数で、色が強度を表したものとなる。

波形のグラフを周波数のグラフにするには、窓関数とフーリエ変換を使う。

窓関数とはある時間帯の波形の一部を取り出すために使う適当な関数。窓関数と波形を掛け合わせると波形の一部を取り出せる。

色というのは、色空間上の点、すなわちあるグラデーション(位置によってなめらかに変わる色の階調表現)の画像の上の点の位置で表せる。

つまり、グラデーション画像を用意し、強度から位置への写像を用意すれば、強度から色を選ぶことができる。
2019/03/30(土) 18:39:00.41ID:2KUCkmII
具体的には、色はRGBと呼ばれる三個の整数(Red, Green, Blue)で表せる。もしくはHSVでもいい。RGBからHSVへの変換、またはその逆変換については
https://github.com/katahiromz/color_value/blob/master/color_value.h
を参考に。
2019/03/30(土) 18:51:17.58ID:2KUCkmII
フーリエ変換だが、これは難しい数学の話になる。詳しくは
http://www.ic.is.tohoku.ac.jp/~swk/lecture/yaruodsp/main.html
を参照。

応用数学では、数学の理論を実際に応用・実践しなければ、現場では役に立たない。フーリエ変換及び逆変換を実際にプログラミングで実現してみよう。
273a4 ◆L1L.Ef50zuAv
垢版 |
2019/03/30(土) 18:57:37.52ID:w9K5HDCU
>>271
実際の変換数式は知らなかったので参考になりました。

>>272
フーリエ変換はプログラミングしたことあります。でも展開したとき、どうして
sinやcos以外の関数がつかないのか?とか聞かれたら、調べる必要が出てきます。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況