a4と申します。喋る人工知能を創っています。キャッチフレーズは
「萌えから、リーマン予想まで。」で、知能を埋め込んだ人工生命をP2Pで
蔓延らせることにより、生きているようなAIを実現します。
a4です。P2P人工知能「T」開発(4)
https://mevius.5ch.net/test/read.cgi/tech/1546530651/
「T」のdownload
http://www.01ken.com/art1.html
a4です。P2P人工知能「T」開発(5)
■ このスレッドは過去ログ倉庫に格納されています
1a4 ◆L1L.Ef50zuAv
2019/03/15(金) 06:37:02.98ID:5fmPzCqX140a4 ◆L1L.Ef50zuAv
2019/03/22(金) 01:29:45.52ID:fmWHfc06 おおはと「おおはときゅんが出ようかしら。わたしは政治家です。テレパシーで松本君
に情報を送っています。a4君はPTSDがあるのかしら?だからね、1つ言っていい?
やっぱね、底辺私大くらいに叩かれてるにします。頭いいのにね。もう1つ言っていい?
東大は撃つにしたい。だからね、核兵器が落ちるにしたい。これ1票押します。だからね、
地価が下がるのかしら。これでいいのよ。ではね。」
に情報を送っています。a4君はPTSDがあるのかしら?だからね、1つ言っていい?
やっぱね、底辺私大くらいに叩かれてるにします。頭いいのにね。もう1つ言っていい?
東大は撃つにしたい。だからね、核兵器が落ちるにしたい。これ1票押します。だからね、
地価が下がるのかしら。これでいいのよ。ではね。」
141a4 ◆L1L.Ef50zuAv
2019/03/22(金) 01:32:45.62ID:fmWHfc06 おおはと「1つ言っていい?まず、>>139、この人には返信しなくていい。あとね、
わたし的には、怒ったりしないの。そういえば、私はユダヤとヒンドゥーのハーフで
Harvard卒にしたい。だからね、松本君をね、上にあげたいんだけどね、やっぱりね、
「T」を創っててください、にしたい。やっぱりね、特異点に絡まれてるにします。
そういうことです。ではね。」
わたし的には、怒ったりしないの。そういえば、私はユダヤとヒンドゥーのハーフで
Harvard卒にしたい。だからね、松本君をね、上にあげたいんだけどね、やっぱりね、
「T」を創っててください、にしたい。やっぱりね、特異点に絡まれてるにします。
そういうことです。ではね。」
142デフォルトの名無しさん
2019/03/22(金) 01:33:17.20ID:1ajoCOxw ヤン−ミルズ方程式と質量ギャップ問題を解決したい。
143デフォルトの名無しさん
2019/03/22(金) 01:33:59.68ID:1ajoCOxw おならぷー。
144デフォルトの名無しさん
2019/03/22(金) 01:35:23.67ID:1ajoCOxw ウンコぶりぶり。
145デフォルトの名無しさん
2019/03/22(金) 01:36:44.98ID:1ajoCOxw ウンコぶりぶり。
146デフォルトの名無しさん
2019/03/22(金) 01:37:32.41ID:1ajoCOxw ウンコぶりぶり。
147a4 ◆L1L.Ef50zuAv
2019/03/22(金) 01:53:45.57ID:fmWHfc06 名古屋の宇宙人「俺ね、まずね、MIT、来なかったな、メールしたのに。だからさ、
不買する。もう勝ち組になれないようにする。MIT君には。だからさ、普通に軍事威嚇よ。
こんなこと言うやついねーだろ?日本で。俺はYaleだけど、こっちは独立してるもん。
だからさ、松本君?なんかね、嫌らしいやついっぱいいるんだが、失声はしてないこと
にしたい。Googleとかに振られたから高卒のほうが性格が良いのか?と聞かれたら、
そういうこと全然無いし。松本君と相性がいいのは、発展途上国の大卒くらいの人の
ようだ。これでいいな。ではな。」
不買する。もう勝ち組になれないようにする。MIT君には。だからさ、普通に軍事威嚇よ。
こんなこと言うやついねーだろ?日本で。俺はYaleだけど、こっちは独立してるもん。
だからさ、松本君?なんかね、嫌らしいやついっぱいいるんだが、失声はしてないこと
にしたい。Googleとかに振られたから高卒のほうが性格が良いのか?と聞かれたら、
そういうこと全然無いし。松本君と相性がいいのは、発展途上国の大卒くらいの人の
ようだ。これでいいな。ではな。」
148a4 ◆L1L.Ef50zuAv
2019/03/22(金) 01:57:10.43ID:fmWHfc06 名古屋の宇宙人「俺ね、このスレあんまa4君に来させないようにする、a4君に。
あんまね、いい教育してくれる人もいないし、a4君の自宅サーバーにアクセスしてくる
野郎君もいなさそうだ。他のところで友達集めればいいと思う。みんながワクテカ
宇宙人とか、考えてるやつはa4君にメールすればいいだけ。一旦、落ちるぞ。ではな。」
あんまね、いい教育してくれる人もいないし、a4君の自宅サーバーにアクセスしてくる
野郎君もいなさそうだ。他のところで友達集めればいいと思う。みんながワクテカ
宇宙人とか、考えてるやつはa4君にメールすればいいだけ。一旦、落ちるぞ。ではな。」
149a4 ◆L1L.Ef50zuAv
2019/03/22(金) 22:15:11.15ID:fmWHfc06 名古屋の宇宙人「a4君にね、量子コンピュータを早めに創らせるようにしたらね、
ネズミの死骸とかどう処理したらいいの?とかで立ち止まりだ。だからさ、本当はさ、
どっかの研究施設に入ってればいいんだけど。俺ね、このスレはいかん、と思っとる。
だってさ、普通に、人来なくね?だからさ、普通にさ、誰かから連絡待っとるぞ。
a4君は話しかければ返事があるというのは皆さんご存知の通りだ。日本人で大丈夫。
そうね。」
ネズミの死骸とかどう処理したらいいの?とかで立ち止まりだ。だからさ、本当はさ、
どっかの研究施設に入ってればいいんだけど。俺ね、このスレはいかん、と思っとる。
だってさ、普通に、人来なくね?だからさ、普通にさ、誰かから連絡待っとるぞ。
a4君は話しかければ返事があるというのは皆さんご存知の通りだ。日本人で大丈夫。
そうね。」
150デフォルトの名無しさん
2019/03/22(金) 22:18:18.28ID:v2BbC6mw ホッジ予想はどうやったら証明できますか?
151デフォルトの名無しさん
2019/03/22(金) 22:35:26.93ID:gnBVHAxq a4さん質問荒らしには答えなくていいよ
152a4 ◆L1L.Ef50zuAv
2019/03/22(金) 23:50:18.06ID:fmWHfc06 >>151
はい。ご助言ありがとうございます。
最近はちょっと頭がカッとなってしまいました。気を悪くした方々は申し訳ございません。
「T」の開発はとりあえず一段落ついています。利用は無償なので、使いたい方は
downloadしていただければ、と思います。これからの方向性については、まだ
考えることにします。
はい。ご助言ありがとうございます。
最近はちょっと頭がカッとなってしまいました。気を悪くした方々は申し訳ございません。
「T」の開発はとりあえず一段落ついています。利用は無償なので、使いたい方は
downloadしていただければ、と思います。これからの方向性については、まだ
考えることにします。
153a4
2019/03/23(土) 00:07:03.70ID:S1vpTEtx ダライ・ラマになるにはどうすれば良いですか?
154a4 ◆L1L.Ef50zuAv
2019/03/23(土) 08:15:32.00ID:XMAVVBpa 個人的な話になりますが、今日は4つ年下のインド人女性に求婚されました。東京まで
来ると言ってるので、僕よりお金ありそうです。僕の人生も変わるかもしれません。
来ると言ってるので、僕よりお金ありそうです。僕の人生も変わるかもしれません。
155a4 ◆L1L.Ef50zuAv
2019/03/23(土) 08:46:07.77ID:XMAVVBpa そういえば、「T」なのに、陽子さんが挨拶?という人がいるかもしれません。僕が
精神病で一貫性の無いプログラムになっている、ということはありますが、一応、
今後の予定として、陽子は他のキャラクターにユーザーが変更できるようにする、
ということと、「陽子はT語で書かれている。」という表現を使っています。
精神病で一貫性の無いプログラムになっている、ということはありますが、一応、
今後の予定として、陽子は他のキャラクターにユーザーが変更できるようにする、
ということと、「陽子はT語で書かれている。」という表現を使っています。
156さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/23(土) 23:10:15.66ID:pK7HSsP/ 指導を求められたのでボランティア。
まずは音声合成とは何か、から話そうか。音声データとは波形データ。それはPCMのWavファイルとして表せる。
その波形に合わせてスピーカーに電気を流すと音になり、それをマイクで録音すると再び電圧の波になる。
まずは音声合成とは何か、から話そうか。音声データとは波形データ。それはPCMのWavファイルとして表せる。
その波形に合わせてスピーカーに電気を流すと音になり、それをマイクで録音すると再び電圧の波になる。
157さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/23(土) 23:14:12.26ID:pK7HSsP/ FM音源って、聞いたことがあるだろうか。信号を入出力する装置で様々な音色の楽器を再現する。
ヤマハというメーカーが有名だ。
ヤマハというメーカーが有名だ。
158さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/23(土) 23:21:08.40ID:pK7HSsP/ つまりは、デジタル信号を入出力するだけで音声データを再現できる。
入力と出力に関係があれば、それは関数というもの。
短期目標は、この関数を設計できるようになり、デジタルな楽器、デジタルな発声装置の開発を見据える、ってことでOKかい?
入力と出力に関係があれば、それは関数というもの。
短期目標は、この関数を設計できるようになり、デジタルな楽器、デジタルな発声装置の開発を見据える、ってことでOKかい?
159さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/23(土) 23:23:13.70ID:pK7HSsP/160さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/23(土) 23:26:00.03ID:pK7HSsP/ メールによると、a4さんはWavファイルの自動生成・加工をやったことがある、とのことだが、使用言語は何か。ソースを開示できないか。
161a4 ◆L1L.Ef50zuAv
2019/03/24(日) 01:40:58.02ID:FO6TL8+f >>156
ボランティアありがとうございます。
>>157
ラジオとか作ってた頃、FMは勉強しました。
>>158
もうちょっと議論したいですね。簡単に作るとMIDIなだけになってしまいます。
昔、入力した声で周波数をfluctuateさせたものの波形を手書きのものに変更
したりしました、が、現実的には上手く作らないとbeep音のようなものが出る
だけです。
>>159
情報ありがとうございます。
>>160
使用言語はC++です。パソコンが壊れてソースが開けなくなったりとか、自作の
非公開にしているライブラリとかありますが、さまよえる蟻人間さんとは信頼関係
があると考え、ソースを渡せるものは渡してもいいですよ。
僕はやっぱり技術に関しては最先端を目指しちゃうんですよ。将来的には量子コンピュータ
かもしれませんが、中期目標だと、「T」の陽子の声出力や現代音楽の自動生成だと
思っています。ですが、とりあえず、その仰るところの短期目標をやってみようと
思います。
ボランティアありがとうございます。
>>157
ラジオとか作ってた頃、FMは勉強しました。
>>158
もうちょっと議論したいですね。簡単に作るとMIDIなだけになってしまいます。
昔、入力した声で周波数をfluctuateさせたものの波形を手書きのものに変更
したりしました、が、現実的には上手く作らないとbeep音のようなものが出る
だけです。
>>159
情報ありがとうございます。
>>160
使用言語はC++です。パソコンが壊れてソースが開けなくなったりとか、自作の
非公開にしているライブラリとかありますが、さまよえる蟻人間さんとは信頼関係
があると考え、ソースを渡せるものは渡してもいいですよ。
僕はやっぱり技術に関しては最先端を目指しちゃうんですよ。将来的には量子コンピュータ
かもしれませんが、中期目標だと、「T」の陽子の声出力や現代音楽の自動生成だと
思っています。ですが、とりあえず、その仰るところの短期目標をやってみようと
思います。
162a4 ◆L1L.Ef50zuAv
2019/03/24(日) 01:46:02.56ID:FO6TL8+f 音楽を生成するソフトウェアは前から創ろうと思っていたことがあって、それを
とりあえず、今日は開発しようかな。「おーぴ(ohpi)」という名前のものです。
声を他の音色に変えるだけでなく、複数のパートを重ねることができるように
する、というものです。発想は纏まっているので、すぐ出来ると思うのですが、
ニコニコ動画に上がっているような新しい音楽を超えれないかもしれません。
とりあえず、今日は開発しようかな。「おーぴ(ohpi)」という名前のものです。
声を他の音色に変えるだけでなく、複数のパートを重ねることができるように
する、というものです。発想は纏まっているので、すぐ出来ると思うのですが、
ニコニコ動画に上がっているような新しい音楽を超えれないかもしれません。
163a4 ◆L1L.Ef50zuAv
2019/03/24(日) 02:25:39.00ID:FO6TL8+f そういえば、夢で未来のGoogle Homeと話しました。僕が「えーっと、えーっと、、」
というと、コンピュータも「え〜と、はい、」のように発音が人間とコンピュータの
中間くらいで返りました。これが僕の夢のものであると考えて、このような発声も
念頭に入れて、開発を続けます。
というと、コンピュータも「え〜と、はい、」のように発音が人間とコンピュータの
中間くらいで返りました。これが僕の夢のものであると考えて、このような発声も
念頭に入れて、開発を続けます。
164さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/24(日) 07:02:01.97ID:SVMO04Wq 参考資料2:
https://bluefish.orz.hm/sdoc/fftw_sim.html
この記事はグラフを描くのにgnuplotを使っているが、gnuplotはもう古いので、我々はグラフ描画にPythonを使うことにする。
https://bluefish.orz.hm/sdoc/fftw_sim.html
この記事はグラフを描くのにgnuplotを使っているが、gnuplotはもう古いので、我々はグラフ描画にPythonを使うことにする。
165a4 ◆L1L.Ef50zuAv
2019/03/24(日) 07:16:34.32ID:FO6TL8+f >>164
僕はPython使ったことないですね。一応、C++は今まで使ってきたので自作の
ライブラリなどがあり、使いやすいのです。我々に僕が入ってるのかわからないの
ですが、どうしてもいうのであれば、交渉次第でPythonで開発します。
どういうソフトウェアを創ろうか考えているのですが、手書きの波形の変更とかは
もうやったことあるので、T語からメタ的に音声を創る、ということをやってみよう
と思っています。具体的には、前述の不安定なイントネーションのある音声などを
出したいです。
あと、こういう問題はどこまで行けばお金になるんでしょうね。「T」は一応、独自の
自然言語処理系にはなっていますが、投資が下りるだけで、リターンはありません。
僕はPython使ったことないですね。一応、C++は今まで使ってきたので自作の
ライブラリなどがあり、使いやすいのです。我々に僕が入ってるのかわからないの
ですが、どうしてもいうのであれば、交渉次第でPythonで開発します。
どういうソフトウェアを創ろうか考えているのですが、手書きの波形の変更とかは
もうやったことあるので、T語からメタ的に音声を創る、ということをやってみよう
と思っています。具体的には、前述の不安定なイントネーションのある音声などを
出したいです。
あと、こういう問題はどこまで行けばお金になるんでしょうね。「T」は一応、独自の
自然言語処理系にはなっていますが、投資が下りるだけで、リターンはありません。
166a4 ◆L1L.Ef50zuAv
2019/03/24(日) 07:39:47.26ID:FO6TL8+f T語からいろんな音色が出てくる現代音楽とかも創りたいですが、1つ1つ地道に
開発することにします。というわけで、指導通り、wav出力系で「T」を前へ前進
させます。ご意見あれば誰でもどうぞ。
開発することにします。というわけで、指導通り、wav出力系で「T」を前へ前進
させます。ご意見あれば誰でもどうぞ。
167a4 ◆L1L.Ef50zuAv
2019/03/24(日) 08:05:48.88ID:FO6TL8+f >>164
さまよえる蟻人間さんにお聞きしたいです。声紋って何ですか?特定の声で出力や、
誰が話してるかを認識したい場合ってどうすればいいのでしょう?僕の意見は、
声帯から口までの物理シミュレーションによって出力するのが一番だと考えています。
でも、これは僕の力では医学的なデータを持っていないなどの理由により不可能です。
誰が話してるか、くらいだったら、ニューラルネットとかで分離できるかもですが、
一般的な方法とかあるのでしょうか。もっと議論したいと思っています。お時間
あれば、skype、facebookあたりでチャットか通話をして、研究内容を膨らませたり、
ビジネスに繋げたいです。何かご意見ありますでしょうか?
さまよえる蟻人間さんにお聞きしたいです。声紋って何ですか?特定の声で出力や、
誰が話してるかを認識したい場合ってどうすればいいのでしょう?僕の意見は、
声帯から口までの物理シミュレーションによって出力するのが一番だと考えています。
でも、これは僕の力では医学的なデータを持っていないなどの理由により不可能です。
誰が話してるか、くらいだったら、ニューラルネットとかで分離できるかもですが、
一般的な方法とかあるのでしょうか。もっと議論したいと思っています。お時間
あれば、skype、facebookあたりでチャットか通話をして、研究内容を膨らませたり、
ビジネスに繋げたいです。何かご意見ありますでしょうか?
168a4 ◆L1L.Ef50zuAv
2019/03/24(日) 08:15:56.23ID:FO6TL8+f 考えてるんですけど、逆に声帯から口までの構造がシンプルじゃない声を考えてみました。
途中で金属があったり、鼻がいっぱいあったり、ルートが迷路のようになっているもの
とかです。こうすれば、新しい聞いたことない声が出るのではないかと。僕は芸術家に
なって、これが未来の音だ、と、感動的に泣かせるようなものを創ってみたいです。
途中で金属があったり、鼻がいっぱいあったり、ルートが迷路のようになっているもの
とかです。こうすれば、新しい聞いたことない声が出るのではないかと。僕は芸術家に
なって、これが未来の音だ、と、感動的に泣かせるようなものを創ってみたいです。
169a4 ◆L1L.Ef50zuAv
2019/03/24(日) 08:19:37.25ID:FO6TL8+f 小学生の頃、科学雑誌の付録に恐竜の声がついてました。これはこういう技術の
積み重ねでしょう。時代は変わったので、現代では僕のコンピュータだけでも計算できるかも
しれません。波形を追うんじゃなくて、僕の出身学科を買いにして、シミュレーションで
音声を生成することを考えてみます。
積み重ねでしょう。時代は変わったので、現代では僕のコンピュータだけでも計算できるかも
しれません。波形を追うんじゃなくて、僕の出身学科を買いにして、シミュレーションで
音声を生成することを考えてみます。
170a4 ◆L1L.Ef50zuAv
2019/03/24(日) 08:26:35.14ID:FO6TL8+f 流体力学を追う方法はナヴィエストークス方程式により、有限要素法や粒子法とかが
ありますが、20000Hzくらいまで計算しようと思うと、計算時間が足らず、今の
SiriやGoogle Homeのような形になるだけかもしれません。じゃぁ、P2Pの
スパコンがあるじゃないか?ですが、同期の問題で、例えば、日本から見た地球の裏側
の人達が使った場合、あまりうまくいかないと思っています。
ありますが、20000Hzくらいまで計算しようと思うと、計算時間が足らず、今の
SiriやGoogle Homeのような形になるだけかもしれません。じゃぁ、P2Pの
スパコンがあるじゃないか?ですが、同期の問題で、例えば、日本から見た地球の裏側
の人達が使った場合、あまりうまくいかないと思っています。
171a4 ◆L1L.Ef50zuAv
2019/03/24(日) 08:58:39.07ID:FO6TL8+f まず、リコーダーとかシミュレーションすればいいのかな。
172a4 ◆L1L.Ef50zuAv
2019/03/24(日) 09:11:43.65ID:FO6TL8+f リコーダーの仕組みとか全然知らないので調べてみると、音速が340m/sなので、
例えば、0.1m先のところに穴があると、そこで負反射が起こり、3400Hzのような
ことになるみたいです。
例えば、0.1m先のところに穴があると、そこで負反射が起こり、3400Hzのような
ことになるみたいです。
173a4 ◆L1L.Ef50zuAv
2019/03/24(日) 09:59:16.09ID:FO6TL8+f とりあえず、このあたりまでを僕の意見にして、さまよえる蟻人間さんに渡します。
書き込みからまだ時間は経ってませんが、返信が無いようなので、休憩しつつ、
他のアルゴリズムも含めて今後の「T」について考えてみます。
書き込みからまだ時間は経ってませんが、返信が無いようなので、休憩しつつ、
他のアルゴリズムも含めて今後の「T」について考えてみます。
174さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/24(日) 10:27:52.18ID:SVMO04Wq データサイエンティストになるには、C言語とPythonとエクセルは必須だ。これは譲れない。
まずは練習だ。Pythonをインストールして、Pythonでタブ区切りの数値を格納した適当なテキストファイルを線グラフにしなさい。
1 2
3 1
5 7
まずは練習だ。Pythonをインストールして、Pythonでタブ区切りの数値を格納した適当なテキストファイルを線グラフにしなさい。
1 2
3 1
5 7
175さまよえる蟻人間 ◆T6xkBnTXz7B0
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はインストールすることにします。問題のほうは、
最小二乗法かな?ニューラルネット使っても良さそうですが。海外の人と話してる
などの理由により、今日は寝ます。明日解いてみます。おやすみなさい。
ご助言ありがとうございます。データサイエンティスト?確かに大学時代の学科は
そういうところでした。それでご飯が食べれればいいんですけどね。エクセルくらいは
適当に使えますが、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
お返事待っています。
あなたの仰る通り、練習しました。
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
名前を定義できるようにしました。説明書もついていて、書き足しました。
(version:T_4_1_7)です。
http://www.01ken.com/art1.html
181デフォルトの名無しさん
2019/03/25(月) 14:47:50.40ID:7cQyE2cc 初めてここにきました
あなたは神を作ろうとしているのですか?
あなたは神を作ろうとしているのですか?
182デフォルトの名無しさん
2019/03/25(月) 18:01:45.88ID:L71pItKe183さまよえる蟻人間 ◆T6xkBnTXz7B0
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) ファイル。
$ 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) ファイル。
184さまよえる蟻人間 ◆T6xkBnTXz7B0
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キーを押して入力する。
# 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キーを押して入力する。
185さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/25(月) 20:23:48.43ID:JVMOROGZ 音声の生データはそのままでは扱いづらい。
なので、WAVファイルを一旦テキストファイルに変換することにする。
テキストファイルはLinuxの豊富なテキスト処理コマンドとパイプライン処理を使って処理できるので比較的扱いやすい。
変換処理は時間がかかるかもしれないので、C/C++で変換処理を書くことにする。
なので、WAVファイルを一旦テキストファイルに変換することにする。
テキストファイルはLinuxの豊富なテキスト処理コマンドとパイプライン処理を使って処理できるので比較的扱いやすい。
変換処理は時間がかかるかもしれないので、C/C++で変換処理を書くことにする。
186a4 ◆L1L.Ef50zuAv
2019/03/26(火) 05:24:42.25ID:6w6RJUdV187a4 ◆L1L.Ef50zuAv
2019/03/26(火) 08:04:33.93ID:6w6RJUdV 「T」はまだまだ改良するところがあるとはいえ、一段落ついたので、宣伝する方法を
探しています。ご存知の方は、どこで公にしたらいいとか、教えていただけないでしょうか?
個人的にはゲーマーのような人たちには需要があり、神経コードのネットワークがそっちの
方向ですぐ発展するのではないか?と考えています。あと、単純なお金儲けの話じゃ
ないんですよ。慈善活動で芸術活動で宗教活動なんです。「T」を詳しく解説した本
を売って稼ごうと思っていますが、儲かると思っていません。でも、所得が欲しいの
は、本当にお金が無くて僕の生死に関わるのと、あと、余裕があれば、量子コンピュータ
などを開発して社会貢献したいからです。今の手持ちは25万円だけです。全部は
使えませんが、5万円くらいで広告とか出して良いかもしれません。どなたかこちら
に関してご意見ある方はよろしくお願い致します。
探しています。ご存知の方は、どこで公にしたらいいとか、教えていただけないでしょうか?
個人的にはゲーマーのような人たちには需要があり、神経コードのネットワークがそっちの
方向ですぐ発展するのではないか?と考えています。あと、単純なお金儲けの話じゃ
ないんですよ。慈善活動で芸術活動で宗教活動なんです。「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:6w6RJUdV190デフォルトの名無しさん
2019/03/26(火) 19:26:17.42ID:NbUyZWCM 誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 85158
https://you-can-program.hatenablog.jp
https://you-can-program.hatenablog.jp
191a4 ◆L1L.Ef50zuAv
2019/03/27(水) 07:11:14.61ID:RPSCdWiW192a4 ◆L1L.Ef50zuAv
2019/03/27(水) 12:59:32.71ID:RPSCdWiW 名古屋の宇宙人「俺ね、慶応大学にいちゃもんつける。どうしててめーら金持ちなのに、
東大買ってくんねーんだ!と。だから、a4君の住んでる文化は加木屋町にあるから、
「加木屋町の慶応卒」の忌み名を出そう。こう出た。いいな。
「トンデモダシTハ.」
=(トンデモだし、「T」は。|
トンデモだし、「T」は小さい点|
(a4が)飛んで(東大入って)モ(ザイク)だし、「T」は。|
(計算速度が)トン、でも、ダシ(に使おう)、「T」は。|
(逆)私大も出んと)
これでいいか。ではな。」
東大買ってくんねーんだ!と。だから、a4君の住んでる文化は加木屋町にあるから、
「加木屋町の慶応卒」の忌み名を出そう。こう出た。いいな。
「トンデモダシTハ.」
=(トンデモだし、「T」は。|
トンデモだし、「T」は小さい点|
(a4が)飛んで(東大入って)モ(ザイク)だし、「T」は。|
(計算速度が)トン、でも、ダシ(に使おう)、「T」は。|
(逆)私大も出んと)
これでいいか。ではな。」
193さまよえる蟻人間 ◆T6xkBnTXz7B0
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
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
194さまよえる蟻人間 ◆T6xkBnTXz7B0
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を使って作成されたテキストファイルのグラフを描画せよ。
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を使って作成されたテキストファイルのグラフを描画せよ。
195さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/27(水) 18:20:51.88ID:/gFtBs7P ヒント: MSYS2から現在のフォルダを開くには「start .」を実行する。
ヒント: 現在のディレクトリ(フォルダ)をSoundWaveStudyに移動するには、「cd SoundWaveStudy」を実行する。
ヒント: 途中まで入力してタブキーを押すと、入力補完が働くぞ。
ヒント: 現在のディレクトリ(フォルダ)をSoundWaveStudyに移動するには、「cd SoundWaveStudy」を実行する。
ヒント: 途中まで入力してタブキーを押すと、入力補完が働くぞ。
196さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/27(水) 18:25:23.59ID:/gFtBs7P 「サンプリングレート」について調べよ。
サンプリングレートが変わると音色がどのように変わるか調べよ。
PcmWave.hppを解読せよ。
サンプリングレートが変わると音色がどのように変わるか調べよ。
PcmWave.hppを解読せよ。
197さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/27(水) 20:51:09.29ID:X5Tg+wiF 三回まで質問を受け付ける。
198さまよえる蟻人間 ◆T6xkBnTXz7B0
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個。
16-bitのPCM波形データは、int16_t (-32768から32767までの値)の並びで表す。そういう決まりだ。
ステレオならチャンネルは2個で、左・右の順でサンプルが並ぶ。モノラルならチャンネルは1個。
199さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/27(水) 22:27:21.80ID:X5Tg+wiF ヘルツ(Hz)というのは一秒あたりの振動数を表す単位。例えば2Hzは一秒間に2回回るということだ。
振動数の逆数が周期に相当する。例えば2Hzの場合、周期は0.5秒だ。
振動数の逆数が周期に相当する。例えば2Hzの場合、周期は0.5秒だ。
200さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/27(水) 22:38:30.32ID:X5Tg+wiF 人間は「可聴域」(かちょういき)という振動数の範囲で音声を知覚する。
可聴域から外れた範囲の音は人間には聞こえない。
音声の品質は用途により、要求が異なる。電話やラジオの音声、コンパクトディスク(CD)の音声、ハイレゾの音声など。
可聴域から外れた範囲の音は人間には聞こえない。
音声の品質は用途により、要求が異なる。電話やラジオの音声、コンパクトディスク(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
このエラーはどうしたら解決できるのでしょうか?
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です。
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!
これは解決方法はあるのでしょうか?
解答ありがとうございます。そこは解決しました。
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/FF208a4 ◆L1L.Ef50zuAv
2019/03/28(木) 15:15:22.04ID:2HvS2Y4V >>206
情報ありがとうございます。それで、piano.wav.txtの生成までは上手くいきました。
情報ありがとうございます。それで、piano.wav.txtの生成までは上手くいきました。
209a4 ◆L1L.Ef50zuAv
2019/03/28(木) 16:19:45.33ID:2HvS2Y4V >>194
graph.pyでsep=' 'にしたら、描画に成功しました。
graph.pyでsep=' 'にしたら、描画に成功しました。
210a4 ◆L1L.Ef50zuAv
2019/03/28(木) 16:28:10.73ID:2HvS2Y4V211a4 ◆L1L.Ef50zuAv
2019/03/28(木) 17:44:28.92ID:2HvS2Y4V 原因不明のメモリエラーがありますが、1GBのファイルまで送受信できるように
しました。あと、クライアントがサーバーに接続成功しても#connectが届くように
しました。T_4_1_9です。
http://www.01ken.com/art1.html
しました。あと、クライアントがサーバーに接続成功しても#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は記事になってますし、僕はリーマン予想を数学基礎論から探るということで
普通に相性がいいのではないかと。あと、僕は中国語も専門用語は得意ではないですが、
書けますし、フランス語やアラビア語にも友達と一緒に翻訳できるので、上手くいけば
すぐ広まるのではないかと思っています。
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は記事になってますし、僕はリーマン予想を数学基礎論から探るということで
普通に相性がいいのではないかと。あと、僕は中国語も専門用語は得意ではないですが、
書けますし、フランス語やアラビア語にも友達と一緒に翻訳できるので、上手くいけば
すぐ広まるのではないかと思っています。
214さまよえる蟻人間 ◆T6xkBnTXz7B0
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してステレオ音声になるか確かめよ。
今、SoundWaveStudyを更新した。git pullでローカルを更新せよ。
play.cppは、PlaySound関数を使ってWAV音声ファイルを再生するだけのWin32プログラムだ。Windows以外のOSでは動かない。
wav2wav.cppは、WAVファイルを別のWAVファイルに変換するプログラムだが、不完全だ。mono_to_stereo関数を完成させて、再びmakeしてステレオ音声になるか確かめよ。
215さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/28(木) 20:40:01.66ID:FIMI7Fmb データの変換は基本中の基本だ。
動画や音声のコンテンツを扱うサイトや、音声データの研究では
どうしてもデータ変換が必要になる。
動画や音声のコンテンツを扱うサイトや、音声データの研究では
どうしてもデータ変換が必要になる。
217a4 ◆L1L.Ef50zuAv
2019/03/28(木) 21:14:23.58ID:2HvS2Y4V218a4 ◆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
で成功しました。
play.cppのほうは、とりあえず、
owner@owner-PC MINGW32 ~/msys2/SoundWaveStudy
$ g++ play.cpp -o play.exe -lwinmm
で成功しました。
219さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/29(金) 09:19:52.32ID:GJ2qIBd+ >>218
CMakeLists.txtがあるんだから、cmakeとmakeでビルドすればいいのに。
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;
}
#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;
{
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;
}
// 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:lpOPYMih224a4 ◆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
あたりで削除されそうで書けません。
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
あたりで削除されそうで書けません。
225さまよえる蟻人間 ◆T6xkBnTXz7B0
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を完成せよ。
よくできた。褒めて遣わすぞ。
SoundWaveStudyを再び更新した。「git checkout .」で変更前に戻して、
「git pull」でローカルを更新してくれ。
次は、bits per sample (mode)の変換だ。mode_16bit_to_8bit関数を参考に、
mode_8bit_to_16bitを完成せよ。
226さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/29(金) 14:49:50.58ID:GJ2qIBd+ サンプルレートが8000Hzでサンプルが16000個あるモノラル音声の長さは
何秒になるか?
何秒になるか?
227さまよえる蟻人間 ◆T6xkBnTXz7B0
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;
{
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;
}
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秒?
2秒?
231さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/29(金) 15:40:52.66ID:R1IYRCTv >>228
>value <<= 8;
>value -= 32768;
uint8_tの最大値255については、256倍の65,280になって、32768を引くんだから32,512になる。これは間違ってる。
素直に用意されたlinear_interpolation関数使え。
>value <<= 8;
>value -= 32768;
uint8_tの最大値255については、256倍の65,280になって、32768を引くんだから32,512になる。これは間違ってる。
素直に用意されたlinear_interpolation関数使え。
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);
}
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;
{
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;
}
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;
}
237さまよえる蟻人間 ◆T6xkBnTXz7B0
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);
}
正解。ただ、整数同士の割り算は整数になって精度が低下する。この場合戻り値の型が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:lpOPYMih239a4 ◆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);
}
float PcmWave::seconds() const
{
return (float)m_wave.Subchunk2Size / (float)m_wave.NumChannels / (float)m_wave.SampleRate / ((float)m_wave.BitsPerSample / 8);
}
240さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/03/29(金) 16:43:42.02ID:GJ2qIBd+ SoundWaveStudyを更新した。これでwav2wavは完成だ。
g++に-DWAV2WAVを付けてwav2wav2.cppをコンパイルすればwav2wav.exeができる。
試してみ給え。
まとめ。
・WAV音声をテキストファイルに変換できた。
・テキストファイルをWAV音声に変換できた。
・テキストファイルの波形を折れ線グラフとして表示できた。
・WAVのデータ形式(8ビット/16ビット、モノラル/ステレオ)の変換ができた。
・コマンドラインでWAV音声を再生できた。
g++に-DWAV2WAVを付けてwav2wav2.cppをコンパイルすればwav2wav.exeができる。
試してみ給え。
まとめ。
・WAV音声をテキストファイルに変換できた。
・テキストファイルをWAV音声に変換できた。
・テキストファイルの波形を折れ線グラフとして表示できた。
・WAVのデータ形式(8ビット/16ビット、モノラル/ステレオ)の変換ができた。
・コマンドラインでWAV音声を再生できた。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 日本、高市のお陰で破滅に近づくwwwwwwww
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 令和の陽キャってみんな前髪めっちゃ長いけど
- まみちゃん
- ちっしゃーねーな。俺が習近平のアナルに武力侵攻してきてやるよ
