Back to Top

プログラムの覚書

AnacondaをWindowsにセットアップ

Anaconda(アナコンダ)をWindowsにセットアップする方法を記載します。

Anacondaは、環境を構築するために様々なパッケージをまとめた、Pythonを搭載したオープンなプラットフォームです。

Python、R、Scala の有名なパッケージをcondaを使って簡単にインストールできます。

Anaconda のインストール

1.サイトよりAnacondaをダウンロードします。

・Anaconda3-4.3.0.1-Windows-x86_64.exe

2.ダウンロードしたファイルを実行してインストールします。

今回インストール先をC:\Anaconda3にしました。

 

Anacondaで仮想環境を作成する

必ずしも仮想環境を作成する必要はありませんが、作成しない場合rootの環境となります。

開発毎に環境を使い分けたい場合に、仮想環境を作成すると良いと思います。

仮想環境の作成・削除・環境切り替え には、専用ターミナル(Anaconda Prompt)でcondaを使用して行います。

Anaconda Promptを起動すると

(C:\Anaconda3) C:\Users\(ユーザ名)>

となります。
 

環境の作成する

conda create -n <環境名> python=<バージョン> <スペース区切りでライブラリ名>

conda create -n py3 python=3.6

・py3の環境を作成して、python3.6をインストールしています。
 

環境の一覧を表示する

conda info -e
または
conda env list
# conda environments:
#
py3                      C:\Anaconda3\envs\py3
root                  *  C:\Anaconda3

上記のように表示されます。
 

環境を移動する

activate py3
(C:\Anaconda3) C:\Users\(ユーザ名)>        ・・・root環境
から
(py3) C:\Users\(ユーザ名)>             ・・・py3の環境
に変わります。

 

環境から抜け出る

deactivate

root環境に戻ります。

 

環境を削除する 

conda remove -n py3 --all

 

condaでパッケージ管理

condaは、仮想環境管理のほかにパッケージの管理が出来ます。

コマンド(-n 環境名)で環境を指定することも出来ますが、

以下は仮想環境に移動して処理を進めます。

パッケージをインストールする

conda install python=2.7

 

パッケージを削除(アンインストール)する

conda uninstall python

 

環境に入っているパッケージの表示する

conda list

 

パッケージをアップデートする

conda update python

 

conda 自身を更新する

conda update conda

 

pipでパッケージ管理

pipはPythonのパッケージ管理システムです。

conda にないく pip にあるパッケージは、pipコマンドでインストール出来ます。

パッケージをインストールする

pip install パッケージ名

 

パッケージを削除(アンインストール)する

pip uninstall パッケージ名

 

パッケージをアップデートする

pip install -U パッケージ名

 

パッケージ一覧を表示する

pip list

 

pipのバージョンを確認する

pip -V

 

VB.NET Accord 音声入力

Accord.NETを使用して音声入力をする方法を記載します。

USB接続カメラなどについている 音声入力デバイスの音声を、入力信号として取得します。

  • Accord.Video
  • Accord.DirectSound
  • Accord.Audio.Formats

をインポートします。

 

音声入力データを取得する

以下のコードは、音声入力を取得して、MemoryStreamにデータを蓄えます。その音声データを SoundPlayerで再生します。

・フォーム上には、[録音開始][録音停止][再生]のボタンを配置します。

Private player As System.Media.SoundPlayer = Nothing

Dim _Stream As MemoryStream
Dim _Encoder As WaveEncoder

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    '音声入力デバイスを取得して、ComboBoxに設定
    Dim audioDevices = New AudioDeviceCollection(AudioDeviceCategory.Capture)

    ComboBox1.Items.Clear()
    If AudioDevices.Count <> 0 Then
        For Each device As AudioDeviceInfo In audioDevices
            ComboBox1.Items.Add(device)
        Next
        ComboBox1.SelectedIndex = 0
    End If
End Sub


Dim _AudioSource As IAudioSource

'音声入力開始
Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
    If ComboBox1.Items.Count = 0 Then
        Return
    End If

    Dim info As AudioDeviceInfo = ComboBox1.SelectedItem()
 
    _Stream = New MemoryStream()             '音声データ出力用ストリーム作成
    _Encoder = New WaveEncoder(_Stream)

    '音声入力デバイスを作成して、22050Hzに設定
    _AudioSource = New AudioCaptureDevice(info)
    _AudioSource.DesiredFrameSize = 2048
    _AudioSource.SampleRate = 22050

    AddHandler _AudioSource.NewFrame, AddressOf Me.Audio_NewFrame
    AddHandler _AudioSource.AudioSourceError, AddressOf Me.Audio_SourceError

    _AudioSource.Start()                     '音声入力開始
End Sub

'音声入力停止
Private Sub StopButton_Click(sender As Object, e As EventArgs) Handles StopButton.Click
    If _AudioSource Is Nothing Then
        Return
    End If

    If _AudioSource.IsRunning Then
        _AudioSource.SignalToStop()     'Audioデバイスの停止
        _AudioSource.WaitForStop()      '完全に停止するまで待つ
        _AudioSource = Nothing
    End If
End Sub

'入力デバイスのデータを取得する
Private Sub Audio_NewFrame(sender As Object, eventArgs As Accord.Audio.NewFrameEventArgs)
    _Encoder.Encode(eventArgs.Signal)                'エンコーダーに音声信号を追加する
End Sub

'このコールバックは、オーディオに何らかのエラーがあるときに呼び出されます。
Private Sub Audio_SourceError(sender As Object, e As AudioSourceErrorEventArgs)
    Throw New Exception(e.Description)
End Sub


Private player As System.Media.SoundPlayer = Nothing
'入力された音声を再生する
Private Sub PlayerButton_Click(sender As Object, e As EventArgs) Handles Button1.Click
    _Stream.Seek(0, SeekOrigin.Begin)             'ストリームのオフセットを開始位置に設定する

    '読み込む
    Using player = New System.Media.SoundPlayer(_Stream)
        player.Play()                             '非同期再生する
    End Using
End Sub

 

Posted in Accord | Leave a reply