コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
SquidSky ◆qhyT2aHAyMJC
2018/7/19 6:56
前回WAVファイルの再生に関してお聞きして、16bitWAVであればそのまま再生できるということで挑戦しました。8180Hzに下げて16bit PCMに変換しました。長さは約10秒。それでも1.40MBです。これだと転送に76分もかかる計算のため、諦めました。サイズを減らすいい方法はありませんか?

コメント

アバター
SquidSky 2018/7/19 18:35 ◆qhyT2aHAyMJC
うーむ。
モノラルでも時間が…。
私は音声編集にAudacityを使っていますが、8bitまで下げることはできないみたいです。
ちなみにですが、PCMSTREAMでやろうとしています。
アバター
あまさとしおん 2018/7/19 18:40 ◆mzDKTVUAtwqE
アバター
あまさとしおん 2018/7/19 18:41 ◆mzDKTVUAtwqE
ところでファイルサイズの計算はあってました???
アバター
SquidSky 2018/7/19 18:45 ◆qhyT2aHAyMJC
合ってないかもです!!()
すみません。
というか、なぜか32bit PCM、48000Hzで出力されていました。改めてリサンプリングとフォーマットの変更を行ったところ、劇的にサイズが小さくなって、246KBになりました。
なんだよ()
アバター
SquidSky 2018/7/19 19:26 ◆qhyT2aHAyMJC
転送ができませんでした。
あと数百バイトのところで転送ができません。
何回やってもできないのです。
せっかく246KBになったのに今度は転送が…orz
アバター
あまさとしおん 2018/7/19 19:28 ◆mzDKTVUAtwqE
これはpetitmodemの青ゲージが埋まってるように見えてダメな感じだったり??
アバター
しんいち 2018/7/19 20:16 ◆lHy.hAWXbthn
(元も子もないことを言ってみる)
MICSTART/MICSAVEで良いのでは?
アバター
SquidSky 2018/7/19 21:11 ◆qhyT2aHAyMJC
@しおんさん
 そうなんです。「終わった!」と思ったら、507ブロック中506ブロックで止まったー!!ってなりました。

@しんいちさん
 それも考えて、自作のPCM録音機でやってみました。しかしあとの編集が難しくてL,Rを同期させることが難しくて断念しました。
アバター
しんいち 2018/7/19 22:24 ◆lHy.hAWXbthn
PetitModemなら、転送こぼれたところからやり直せたような気がしたけど(MIKIさんの改造版じゃなきゃできなかったかな。忘れた^^;)。

3DSにライン入力で録音できないし、マイクで録音しようとするとステレオでも左右両方の音を拾っちゃうから、右の音だけ流して録音/左の音だけ流して録音、とすると、後で左右合わせたときに同期とれなくてズレちゃう、って感じかな。

ファイル転送するためにサンプリングレート落としてファイルサイズ小さくしたものの音質に比べて、左右両方の音拾っちゃうけどマイクで録音した音質がそんなに悪くなければ、それもアリだと思うんですけど、どうなんでしょうね(どうしてもステレオじゃなきゃダメならそもそもマイク厳しいか)。
アバター
SquidSky 2018/7/20 6:42 ◆qhyT2aHAyMJC
ライン入力はできますよ。
AUXケーブルを半差しにするとマイクの回路と繋がるので。
もう一回転送に挑戦してみます。
アバター
あまさとしおん 2018/7/20 14:20 ◆mzDKTVUAtwqE
落しが出るのは処理が間に合わない場合と、途中で雑音入っちゃった場合があるけど
506/507というのは前者にしては落しが少ないので後者の可能性がありそう

前者の対策は「ver1.3.0以降を使う」「1200以下の速度にする」が考えられるけど
後者の場合はパソコンを触らない、不要なほかのソフトを動かさないとか
アバター
SquidSky 2018/7/20 15:21 ◆qhyT2aHAyMJC
今度はSimplexではなくw/ARQでやってみました。
やはり、最後のところで再送を繰り返します。
一体なぜ?
アバター
あまさとしおん 2018/7/20 15:30 ◆mzDKTVUAtwqE
最後、となるともしかしたらだけどpetitmodemが計算をミスって大きすぎるサイズを見積もった可能性もある?
改造してその時点でのデータ保存を可能にするとか?
アバター
SquidSky 2018/7/20 15:35 ◆qhyT2aHAyMJC
それもありですね。もう一度やって無理なら強制書き出しも視野に入れます。
現在はもっとサイズを小さくして4000Hz, 16bit PCMで転送中です。
8180Hzのだと片側チャンネルで18分もかかり、10回やるとあっという間に3時間経ってしまうので容量削減しました。
アバター
SquidSky 2018/7/20 15:44 ◆qhyT2aHAyMJC
あっできました・・・。
昨日のは一体なんだったんだ。
アバター
SquidSky 2018/7/20 15:49 ◆qhyT2aHAyMJC
ちなみにですが、Audacityにはそんな書き出し方法もあったのですね。
ヘッダなしのRAW書き出しもできるようなので、それならプチコン側で解析しなくても済みそうです。
アバター
SquidSky 2018/7/20 16:00 ◆qhyT2aHAyMJC
あー。4000Hzは3DSにとって都合が悪いんですかね・・・。
PCMSTREAM L,R,4000
としているのに、ピッチが全く違い、ピコピコした音で早回しになってしまいます。しかもループ毎に半音上がったりする最悪な状況。
やっぱり8180Hzでいきます・・・。
アバター
SquidSky 2018/7/20 16:05 ◆qhyT2aHAyMJC
ふざけるな!!16bit符号付きで書き出したのに32bitになってやがる!!
だからおかしかったんですね。クソっ(# ゚Д゚)
WAVデータのバイナリ解析をしているときに「あれ、これって波形データの部分だよね・・・。ん!?振り幅が-32768〜32767じゃない!!」ということで発覚しました。
アバター
SquidSky 2018/7/20 16:54 ◆qhyT2aHAyMJC
あれー?今度は16bitで書き出したのに。
また振り幅が収まっていませんでした。
なんとか振り幅を収められないかと思い、以下の処理を記述しました。
FOR I=0 TO LEN(L)-1
L[I] = L[I] >> 16
NEXT
これをRにも処理をかけました。
それでも変わらず。
「早くなるなら、半分のスピードにしてみよう」と考えたので、次は
PCMSTREAM L,R,4000/2
としたところ、無事に再生ができたのです!!

結果としては、PCMSTREAMに渡すサンプリングレートは、2で割ったレートにしないといけないようです。
アバター
ZEX 2018/7/23 23:22 ◆RrwFtq39WJM3
>結果としては、PCMSTREAMに渡すサンプリングレートは、2で割ったレートにしないといけないようです。

それは違うな。
サンプルデータを半分捨ててりゃそうなる

コメントを書く

この投稿にはコメントできません。

- WEB PATIO -