投稿

10月, 2021の投稿を表示しています

エアラ(eA-R)でWF-1000XM4をカスタムIEM化

はじめに コロナの影響で対面ではなく、Web会議システムを使っての打ち合わせが増えましたよね。 それに伴って業務中であってもイヤホンを長時間つける機会も増えてきました。 そんな中、自分の耳に合わないイヤーピースをずっと付けてると非常にストレスを感じます。 そして自分に合うイヤーピースを探すのも一苦労です。 そんな悩みを解決してくれるのがこのエアラ(eA-R)です。   今回は完全ワイヤレスイヤホン(Sony WF-1000XM4)に eA-R を装着して完全ワイヤレスのカスタムIEM化してみようと思います。 エアラ(eA-R)とは 自分のインプレッション(耳型)からオーダーメイドでイヤーピースを作成するハードタイプのアクリル製カスタムイヤーピースです。 eA-R は自分の耳の型からイヤーピースを作成するため、完璧なフィット感が得られます。 オーダー&対応機種は こちら 。 メリット 自分の耳の形に合わせてイヤーピースを作れるので、完璧なフィット感と高い遮音性が得られる。 遮音性が高いので、ノイズキャンセルが不要になる。 ⇢ 耳には完全フィットしてるのに以外と外から音が入ってきたり、音漏れする。  ※ Ultimate Earsのイヤモニだとそんなことないからエアラ(eA-R)固有の問題か、WF-1000XM4との組み合わせの問題か... イヤーピースと耳の間に隙間が出来ないので、音が逃げていかない。 →そのため細かい音がより鮮明に聴こえるようになる。 耳に完全フィットするので、少し引っ張った程度ではイヤホンが外れない。 →不意に耳から外れて落とすことがない。   デメリット 高い。 eA-Rを装着するイヤホンによって金額が違うのですが、最低金額は17,600円〜でWF-1000XM4の場合は22,000円〜になります。 これに加え、インプレッション採取の費用も別途かかります。 未知の装着感のため、人によっては慣れるまでに時間がかかる。 WF-1000XM4の場合、eA-Rをつけたままだとケースに入らないため、充電の度にeA-Rを外す必要がある。しかも着脱が結構キツく、慣れないと難しい。 WF-1000XM4の場合、eA-Rが大きくてWF-1000XM4の近接センサーが上手く反応しない場合がある。その為、 外音取り込み機能やノイズキャンセリング機能...

GAS(Google Apps Script)で言語判別機能付き翻訳APIを作成

目的 翻訳APIを使いたいなぁ。でもお金かけたくないなぁ。という ケチな あなた。 GAS(Google Apps Script)の LanguageApp には翻訳機能が備わっていて無料で利用できます。 今回は LanguageApp を使って無料で使える翻訳APIを作成してみます。 機能 パラメータで渡した値を翻訳する。 言語を自動で判別して、日本語以外なら日本語に翻訳する。 パラメータで渡した値が日本語なら英語に翻訳する。 全体のコード function doGet(event) { let params = event.parameter; let text = params.text; let transText = LanguageApp.translate(text, '', 'ja'); if (text == transText) { transText = LanguageApp.translate(text, '', 'en'); } let response = ContentService.createTextOutput(); response.setMimeType(ContentService.MimeType.JSON); return response.setContent(JSON.stringify({ "code": 200, "text": transText })); } 解説 API実行時のクエリパラメータを受け取ります。 let params = event.parameter; let text = params.text; LanguageApp.translate() で翻訳します。 第2引数には翻訳元の言語、第3引数には翻訳先の言語を指定して、第2引数が空だと言語を自動判別してくれます。 この例の場合、自動判別した言語を日本語に翻訳します。 let transText = LanguageApp.translate(text, '', 'ja'); 翻訳前後が同じ=翻訳元が日本語とい...

Demucsを使って音源分離にチャレンジ

Demucsとは? Facebook Research が開発した音源分離用のAIシステムです。 Demucs は、人による評価を基準とした分離後の音楽の品質において、これまでに報告されている音源分離のシステムよりも上回っているといいます。 しかも GitHub に無料で公開されているようです。 以前、 librosaを使った音源分離 の記事を書いた身としては試さないわけにはいきません。 環境構築 今回は 公式 を参考にして Windows10 に環境構築します。   Anaconda をインストール Windows の場合は Anaconda コンソールから実行する必要があるので、まず こちら から Anaconda のインストーラをダウンロードして PC にインストールします。 ソースコードをダウンロード GitHub から Demucs のソースコードをダウンロードします。 GitHubに馴染みのない方には分かりにくいですが、緑色の「Code」をクリックすると 「Download ZIP」という項目が表示されます。 ダウンロードが完了したら zip を解答して好きなフォルダに配置してください。 私は 「c:/demucs」に配置しました。 音源分離を実行 音源分離は Anaconda コンソール から CUI で操作しますが、基本コピペで問題ないと思います。  Anaconda Prompt を起動 Windows のスタートメニューから Anaconda Prompt を起動します。 ↓のような真っ黒い画面が出てくればOKです。       作業フォルダに移動 下記のコマンドを入力して、作業フォルダに移動します。 cd c:\demucs 設定ファイルを読み込む 使っている PC に GPU を積んでるかどうかでコマンドが違うので注意してください。 [GPU を積んでる場合] conda env update -f environment-cuda.yml conda activate demucs [GPU を積んでいない場合] conda env update -f environment-cpu.yml conda activate demucs 音源分離実行 python.e...

Pythonのrandom.shuffle()を使ってリストをランダムに並び替える

はじめに Python の random.shuffle() は list の内容をランダムに並び替えてくれる関数です。 この関数を使って、複数ある作業を各担当者にランダムに振り分けるスクリプトを作ってみました。(誰がどの作業を担当しても大丈夫という条件付きですが。) やること 作業一覧をファイルに羅列する。(1行につき1作業) Pythonで作業一覧をランダムに並び替える。 ランダムに並び替えた作業一覧を1つずつ担当者に割り振る。(トランプをシャッフルしてみんなに配るイメージ) 作成物 [tasks.txt] タスク1 タスク2 タスク3 タスク4 タスク5 タスク6 タスク7 タスク8 タスク9 [random_task.py] import random # 作業メンバー members = [ 'メンバー1', 'メンバー2', 'メンバー3' ] # 作業タスクを読み込む with open('./tasks.txt', mode='r', encoding='utf-8') as f: # list()やreadlines()で読み込むと改行コードが含まれるのでsplitlines()を使う tasks = f.read().splitlines() # 空のタスクを除去 tasks = list(filter(None, tasks)) # tasks.txtの順に並んでいる作業タスクをランダムに並び替える random.shuffle(tasks) # ランダムに並び替えたタスクをメンバーに振り分ける assign = list(range(len(members))) for i in range(len(members)): assign[i] = [] for i, task in enumerate(tasks): assign[i % len(members)].append(task) # メンバー毎のタスクを表示 for i in range(len(members)): assign[i].sort() print(f'{members[...

[NVIDIA Maxine] Audio Effects SDKをインストール&サンプルアプリ実行

はじめに 今年の4月に発表されたソフトバンクが実施した 5G + MEC の実証実験。 https://robotstart.info/2021/04/15/softbank-nvidia-maxine-mec.html ここで使われている技術の NVIDIA Maxine が気になったので使ってみようと思います。 NVIDIA Maxineとは 公式より抜粋。 NVIDIA Maxine™ is a GPU-accelerated SDK with state-of-the-art AI features for developers to build virtual collaboration and content creation applications such as video conferencing and live streaming. Maxine’s AI SDKs—Video Effects, Audio Effects, and Augmented Reality (AR)—are highly optimized and include modular features that can be chained into end-to-end pipelines to deliver the highest performance possible on GPUs, both on PCs and in data centers. Maxine can also be used with NVIDIA Riva, an SDK for building conversational AI applications, to offer world-class language-based capabilities such as transcription and translation. Developers can add Maxine AI effects into their existing applications or develop new pipelines from scratch using NVIDIA DeepStream, an SDK for building intelligent video analyt...

Python + CoeFont CLOUDでリアルな音声合成を体験

CoeFont CLOUD を使おうと思った経緯 チャットボットとかアプリの音声ガイドとか作る時に、音声合成サービスを使うことってありますよね。 私はそういう時はWebアプリならブラウザ標準のもの、スマホアプリなら OS 標準のものを使うのですが、どうにも機械っぽい声が好きになれませんでした。 CoeFont CLOUD はそんな不満を払拭してくれる流暢な日本語を話してくれるAI音声合成サービスです。 ちなみに無料の CoeFont STUDIO もありますが、こちらは API が公開されてません。 CoeFont CLOUD の凄いところ 自然な日本語。声の種類によってクオリティの差はあるものの、基本的にクオリティは高く、人の温かさを感じられる音声合成です。 声の種類が豊富。というのも、 CoeFont CLOUD は自分の声を収録して音声合成として使うことが出来、さらにそれを公開して収益化も出来ます。 その為、色んな人の声が音声合成として登録されているわけです。 利用プランと料金 月ごとにポイントが付与されて、音声合成を使用する度にポイントが消費されるようです。 声の種類によりますが1文字5ポイント~100ポイントくらい消費され、無料のものもありました。 利用登録 CoeFont CLOUD を開いてアカウント登録します。 登録にはクレジットカードの情報が必要です。 アカウント情報を入力します。 FireFoxでは↓の登録画面が表示されずに登録出来ませんでしたが、Chromeではうまくいきました。 Access key と Client Secret を生成する 画面右上のアカウント設定を開き、左メニューのAPI情報からAccess key と Client Secret を生成します。         使用する CoeFont の ID を検索する CoeFont CLOUD のWEBページから使いたい CoeFont を検索します。 使いたい CoeFont の画面URLの最後の UUID が CoeFont を使う為に必要な ID です。 今回は公式のアベルーニ(2b174967-1a8a-42e4-b1ae-5f6548cfa05d)を使ってみます。 Python で CoeFont CLOUD の音声合成を使用...