読者です 読者をやめる 読者になる 読者になる

クーの自由研究

かえるのクーが素朴な疑問を実験して報告します。(冬眠から目覚めました!)

自由研究の準備(番外2)~ubuntuで音を鳴らそうザオラル!~

自己符号化器 自己符号化器-準備 計算機音楽 計算機音楽-Python

はじめに

神殿にて、壮絶な戦いをくりひろげた瀕死のパーティ。もうだめなのか?
ボクのレベルでは使える呪文はこれが精いっぱいだ。はたして生きてここを出られるのか?
「その御名において生命の炎尽きたる [この者]の身に魂を甦らせたまえ ザオラル
こうしてボクの[VMWare]は奇跡的に復活したのでした。

おおまかな内容

復活したVMWare上のubuntuで音を出します。当初目標としたUSBオーディオの直接制御はどうしてもうまくいかなかったので、VMWareサウンドボードエミュレーション経由で、ホストOSで制御しているUSBオーディオを鳴らします。

VMWareの復活

レベルアップに失敗したVMWareはお亡くなりになりましたが、キャッシュや、残ファイル、設定?を探してこまめに消して再インストールし、うまくいくかわからないながらも、どうにか12.5.0として復活をしました。

最終的にはubuntuから音は出るのですが、目標の設定とは異なるものになりました。

Ubuntu標準のサウンドサーバはPulseAudioです。
いろいろ検索すると、主だったとこで3つばかり方法があるようでした。
直接インストールもしくはゲストOS(ubuntu)にオーディオインターフェースを直結(VMWare的にはホストOSを介在させない=ホストOSから音がでなくなる)
(1)PulseAudioを有効にした状態で、PulseAudioとJackをつなぐソフトを入れて動作させる方法
(2)PulseAudioを無効にした状態で、Jackですべて制御する方法。(通常の他の音はでなくなる模様:ミキシングがなく、USBオーディオインターフェースを占有するため。音楽アプリだけでいい音を出したい場合はよさげ)

ゲストOSとして動作させる場合、オーディオインターフェースをホストOSと共有(VMWare的にはシステムのサウンドカードエミュレーションをホストOS側の汎用ミキサーにつなぐ感じにみえました。厳密には違うかもです。)

(3)PulseAudioを有効にし、PulseAudioからVMWareの仮想音源の音を出す。
結果からいうと(1),(2)は全く歯が立ちませんでした。
認識もできて、設定もOKのように見えるのですが、音を出そうとすると全く出ず、30秒くらいしてから多くのエラーがでます。
このあたりを書くとても長く、また有用な情報ではないのでうまくいったケースのみ記載します。
(2)を目指していたのですが、不本意ながらJack動作ではない(3)とします。
(3)は問題なく音がでました。
設定例は以下のとおりです。

VMWareのサウンドカード設定で「起動時に接続する」と「ホストのサウンドカードを指定(1-2)QUAD-CAPTURE」を選択します。
(ゲストOS起動中にウィンドウ上部のスピーカアイコンからも制御(つなぎ変え)できます)

・SoundSettingでデフォルトのカードを選んでいることを確認します。
・音の出るファイルを鳴らしてみます。(wavファイルもflacファイルも鳴りました。)

(追記)Welcome! [Linux-Sound] によると

[Roland] - QUAD-CAPTURE UA-55 (USB-2)
Linux Support State  doesn't work; (not yet);

なので、環境ではなく、もともとだめっぽかったです。どうりで情報がネットにないです。Steinberg のUR44をCCモード(USBクラスコンプライアント)で動かすとOKみたいという情報があるのですがUR44は高い!UR22mkIIはもしかしたらいけるのでしょうか?

おお!Steinberg のページに「今じゃどっち(UR22 and UR44)ともUbuntuとかで動作すんべ」とありました。

全く手段と目的が入れ替わってますが、linux接続用に「USBクラスコンプライアント」か「USB Audio Class 2.0」対応のUSBオーディオが猛烈に欲しくなってます。(追記ここまで)

ubuntsuの日本語設定

それでは続きをやっていきます
日本語化をします。キーマップが違うととってもたいへんです。

Ubuntuの日本語環境 | Ubuntu Japanese Team

でやってみます。
詳細がのっていないところのみ画面を貼ってみます。
Settings で"Language Support"を探して実行しますが、

f:id:np2LKoo:20160919121019j:plain

The language support is not installded completely
とでてきます。下にでているInstallボタンを押します。
日本語がでてきました。

f:id:np2LKoo:20160919121059j:plain

選ぼうとすると、ここじゃ選べないので"Regional Formats"でえらぶべ、と教えてくれます。親切です。"Regional Formats"で、日本語をえらびました。

f:id:np2LKoo:20160919121211j:plain

¥20,458とでてきたのでビビりました。CurrencyのExampleでした。
このサンプルを設定した方の思惑にまんまと引っかかり、ちょっと悔しいです。
システムも日本語化しようとおもうので、Apply System-Wideを押します。
rebootしてログインしますが、英語のままです。きにせずKeyboardの設定を起動します。

f:id:np2LKoo:20160919121318j:plain

前までなかった"Sun Type 7 USB(Japanese layout)/Japanese 106-key"がでてきました。
Addボタンを押してJapanese(OADG 109A)を選択し、[↑]ボタンで一番上にしました。
キーボードのいちばん上の文字キー列の"-"からシフトなし、あり交互に打ってみます。

f:id:np2LKoo:20160919121422j:plain

ちゃんとできました。再起動します。

f:id:np2LKoo:20160919121502j:plain

起動できたら画面右上の言語選択をja_JPにします。(時刻の設定はここではできないようです)

f:id:np2LKoo:20160919121520j:plain

ログインすると日本語がでてました。

まだいろいろ設定が必要な気がしますが、次はpython関係をインストールします。

Pythonの導入

python 3系をいれます。
こつこつライブラリを入れるのがたいへんなので、anacondaをいれます。

を参照して環境構築しました。
gitがなかったので

sudo apt install git


してから実行しました。anaconda3-4.1.1を入れました。

「Autoencoder」の実験プログラムを実行してみます。

python Experiment.py


ICE default IO error handler doing an exit()
がでました。
google先生によると「そんな時は ~/.ICEauthority を消すべ」なので、

~/.ICEauthorityを削除しました。
エラーが出ずにレポートが表示されました。さすがgoogle先生です。

「Jackつかわないなら、普通の日本語設定済ubuntuでよくない?」のご指摘はごもっともで、ボクもそう思っています。成り行きとはこんなものだと思います。

 

プロジェクトが構想だけで終わることはきっとよくあることなのです

「Please teach me Ellen! Project」構想からからはや3日。プロジェクトは停滞を余儀なくされました。

Please teach me Ellen! Projectは、ボクが英語を正しくかけないので、自己符号化器に英語を学習させて、ボクの英語を添削してくれるプロジェクト構想でした。英語に限らず、どの言語でも「文法は正しいが、だれもそんな言い方しない。変だ。それじゃ伝わらない。」ということがよくあると思います。というか文法「だけ」で作文したらまずそうなると思っています。文法が正しいかすら怪しいボクの文章をEllen先生(=学習済の改良版言語自己符号化器)がやさしく添削してくれるという構想でした。もちろんEllen先生は常にネットを回り、英語の言い回しを研究しています。(いわゆるWeb scrapingです)

ところが、後で知ったのですが書いた英語文書を無料で(翻訳ではなく)添削してくれるソフトが数多くありました。いちばん人気のありそうなGingerをインストールしてみました。

ボクには十分な内容でした。とってもいい具合に添削してくれます。この添削ソフトでGitHubにアップした英語は少しはよくなったと思います。(結構間違っていたことがわかりました。)ほかにも人力添削のサービスや有償ですが、論文レベルでもOKな添削サービスもありました。ボクの自己符号化器はそのレベルに至るには10年以上かかりそうです。こうしてプロジェクトは頓挫したのでした。