【音声処理】ailia SDKで始めるAI開発入門 〜Mac×Pythonで10分実装~

音声処理って複雑で難しいイメージがありますよね?

でも、ご安心ください。ailia SDKを使えば、驚くほど簡単に最先端の音声処理が実現できます!
この記事は、以下のような方におすすめです。

● 音声データのノイズに悩んでいる方
● 特定の人物の声だけを抽出したい方
● テキストで問い合わせるだけで音を分離したい方
● プログラミング初心者だけどAIに興味がある方
● 音声処理を自社のサービスに組み込みたい方

本記事ではPythonを用いて、Apple Silicon搭載Macでの環境構築から、ノイズ除去、特定人物の声の抽出、テキスト指定による音源分離までを、10分で実装する手順を解説します。

1. ailia SDKとは?

AIモデルの実装を簡単に行えるSDKです。以下の特徴があります:

  • 高速な推論エンジンによる、スムーズな実行
  • 画像認識、物体検出、姿勢推定など、370以上の豊富な事前学習済みモデル
  • Mac、Windows、Linux、組み込みボード(Jetson、Raspberry Pi)まで対応したクロスプラットフォーム
  • 多言語対応(Python/C++/Unity(C#)/Java(JNI)/Kotlin/Rust/Flutter)
  • GPU対応(CUDA、Vulkan、Metal)

2. 環境構築(所要時間:約2分)

動作条件

  • Python 3.6 以降

インストール手順

  1. まず、ailia SDKをインストールします:
    pip3 install ailia
  2. サンプルコードをダウンロードします:
    git clone https://github.com/axinc-ai/ailia-models
    cd ailia-models
  3. 依存ライブラリをインストールします:
    pip3 install -r requirements.txt
    pip3 install -r audio_processing/requirements.txt

3. ノイズ除去(所要時間:約3分)

  1. 概要
    • unet_source_separation モデルを使って、ノイズを含む音声データから、人の声をクリアに抽出できます。騒々しい場での録音データから、発言のみを抽出したい場合に役立ちます。
  2. サンプル音声で試します:
    • まずはailia-modelsリポジトリ内の該当フォルダに移動します。
      cd audio_processing/unet_source_separation
    • 次に、以下のコマンドで、音声分離を実行します。
      python3 unet_source_separation.py
    • 処理が完了すると、同フォルダ内にseparated_voice.wav として音声ファイルが保存されます。下記にサンプル音声データを掲載しますので、ぜひ効果を確かめてみてください!
      • 処理前(ノイズを含む音声):
      • 処理後(ノイズ除去された音声):
  3. 自分の音声データで試してみましょう:
    • ご自身の音声データを audio_processing/unet_source_separationフォルダに  input.wav として保存してください。
    • その後、以下のコマンドを実行します。unet_source_separation モデルを使って、input.wav ファイルを処理し、結果を output.wav に保存します。
      python3 unet_source_separation.py --input input.wav --savepath output.wav

4. 任意の人物の声の抽出(所要時間:約3分)

  1. 概要
    • voicefilter モデルを使って、参照音声データに基づいて、特定の人物の声だけを抽出できます。会議の議事録作成などに役立ちます。
  2. サンプル音声で試します:
    • まずはailia-modelsリポジトリ内の該当フォルダに移動します。
      cd audio_processing/voicefilter
    • 次に、以下のコマンドを実行します。voicefilter モデルを使って、mixed.wav ファイルから ref-voice.wav を参照にして特定の人物の声を抽出します。
      python3 voicefilter.py --input mixed.wav --reference_file ref-voice.wav
    • 処理が完了すると、同フォルダ内にoutput.wav として音声ファイルが保存されます。下記にサンプル音声データを掲載しますので、ぜひ効果を確かめてみてください!
      • 処理前①(2人の声が混ざった混合音声データ):
      • 処理前②(抽出したい人物の声が含まれる参照音声データ):
      • 処理後(抽出された音声):
  3. 自分の音声データで試してみましょう:
    • ご自身の音声データを audio_processing/voicefilter フォルダに2つ保存してください (mix.wav と ref.wav のように、区別できる名前で保存してください)。
    • その後、以下のコマンドを実行します。–savepath オプションを使用すると、保存する出力ファイルの名前を変更できます。
      python3 voicefilter.py --input mix.wav --reference_file ref.wav --savepath 出力音声.wav

5. テキスト指定による音源分離(所要時間:約2分)

  1. 概要
    • audiosep モデルを使って、「雷」や「水滴」のように、テキストで指定した音源を、混合音声データから分離できます。効果音の分離や特定の楽器の抽出に活用できます。(※ailia versionが1.3.0 and later なのでご注意ください)
  2. サンプル音声で試します:
    • まずはailia-modelsリポジトリ内の該当フォルダに移動します。
      cd audio_processing/audiosep
    • 同フォルダには、input.wavという水滴と雷が混じったテストデータがあります。
    • 以下のコマンドを実行すると、雷の音声を抽出できます。(※既にフォルダ内にある output_thunder.wav を一度削除して試してみるといいでしょう。)
      python3 audiosep.py -p "thunder" -i input.wav -s output_thunder.wav
    • さらに、以下のコマンドを実行すると、水滴の音声を抽出できます。(※既にフォルダ内にある output_waterdrops.wav を一度削除して試してみるといいでしょう。)
      python3 audiosep.py -p "water drops" -i input.wav -s output_waterdrops.wav
    • 実際の音声データを確認してみましょう。
      • 処理前(混合音声データ):
      • 処理後①(雷だけ抽出した音声データ):
      • 処理後②(水滴だけ抽出した音声データ):
  3. 自分の音声データで試してみましょう:
    • ご自身の音声データを audio_processing/audiosep フォルダに保存し、以下のコマンドを実行します。
      python3 audiosep.py -p "抽出したい音のキーワードを英語で" -i input.wav -s output.wav

6. まとめ

たった数分で、ノイズ除去、特定人物の声の抽出、テキスト指定による音源分離といった、様々な音声処理を実装できました!

ailia SDKを使うことで、専門的な知識がなくても、こんなにも簡単に高度な音声処理を実装できることが分かりました。開発を効率化し、AIを組み込む上で、ailia SDK は非常に有効な選択肢となるでしょう。

この記事では音声処理を例に紹介しましたが、ailia SDK は、画像認識、物体検出、自然言語処理など、様々な分野で370以上の事前学習済みモデルを提供しています。

ぜひ、ailia SDKの特徴である「高速」「使いやすさ」「豊富なモデル」を、ご自身の開発で試してみてください。

7. 参考リンク

土橋克寿

証券会社、ビジネス誌副編集長を経て2013年に独立。欧米中印のスタートアップ取材や、各国首脳・テック企業幹部へのインタビューを多数実施。Yahoo!ニュース エキスパートなど国内外メディアで執筆。2018年より株式会社クロフィー代表取締役として、AI開発・PRコンサルティングなどを手掛ける。
https://news.yahoo.co.jp/expert/authors/dobashikatsutoshi
https://x.com/dobatty

SHARE THIS ARTICLE