アップロードされたサウンドファイルを編集できるアプリケーションを作成しようとしています。これまでのところ、ユーザはwavesurfer jsライブラリを使用してサウンドを取得し、波形として表示することができます。アイデアは、選択された波乗り領域の開始点と終了点を取得し、それらの値をフォームビュー(soxがファイルをトリムする)に渡すことです。私はpipをpysoxにインストールし、私の仮想環境にsoxをインストールしました。これは私が私のurls.pyで、これまで持っているものです。soxを使ってDjangoフォームクラス内のサウンドファイルをトリミングする
url(r'^update_sound/(?P<pk>[\w-]+)$', UpdateSound.as_view(), name='update_sound'),
私forms.py:
import sox
class UpdateSound(forms.ModelForm):
def trim_sound(self):
file = self.cleaned_data.get('sound', False)
tfm = sox.Transformer(file)
tfm.trim(0,0.3)
class Meta:
model = Sounds
fields = [
'sound',
]
と更新ビュー
class UpdateSound(UpdateView):
model = Sounds
form_class = UpdateSound
template_name= 'sound_detail.html'
私の主な質問は、1です。これは、サウンドファイルを編集するための良い方法ですか?2.このフォームを作成するには、フォームクラスに何を追加する必要がありますか?私はソックスの文書を見て、やっていることを完全にはっきりさせていません。サウンドファイルをトランスフォーマの引数として渡すべきですか?どんな助けでも大歓迎です。
お返事ありがとうございます!ソックスの仕組みを理解するのに本当に役立ちました。パスについて私が持っている1つの質問は、あなたはdjango形式のコンテキスト内で、どのようにパスを指定するか知っていますか?入力パスを具体的には、 '音'フィールドをつかむ 'ファイル'変数をプラグインするだけですか? –
おそらく、サウンドデータをローカルファイルに書き込む必要があります。 SoXは標準入力からのオーディオの読み込みをサポートしていますが、不都合なことに、pysoxはそうではありません。また、リモートURLからフェッチすることもできません。 –