md380tools を使った音声ファイルAMBE変換手順書
概要
本手順書は、Raspberry Pi(または同様の Debian 系 Linux 環境)上で、Travis Goodspeed 氏の md380tools を導入し、音声ファイル(WAV 形式)を DMR で使用される AMBE 形式に変換する方法を説明します。
前提条件
動作確認環境:Raspberry Pi OS(Debian 系 Linux)、インターネット接続(ファームウェアのダウンロードに必要)
- AMBE コーデックは特許保護されており、非公式なツールでの変換は自己責任で行ってください。
- md380tools のビルドにはクロスコンパイルツールチェーンや開発ライブラリが必要です。
- 本手順は Raspberry Pi OS(Debian 系)環境を前提としています。
- 本手順書では、以前のビルドエラー(Boost、Dynamic など)を回避するために、
Makefileの修正を含んでいます。
1. 必要なツールのインストール
md380tools のビルドと音声変換に必要なパッケージをインストールします。
1. システムを最新の状態に更新する。
sudo apt update && sudo apt upgrade -y
2. ビルドツールと音声関連パッケージをインストールする。
sudo apt install -y build-essential git wget unzip sox mplayer libusb-1.0-0-dev gcc-arm-none-eabi
2. md380tools のクローンとビルド
GitHub から md380tools リポジトリをクローンし、ビルドします。
1. 作業ディレクトリを作成して移動する。
mkdir -p ~/tmp/md380tools cd ~/tmp/md380tools
2. リポジトリをクローンする。
git clone https://github.com/travisgoodspeed/md380tools .
.)を付けることで、現在のディレクトリに直接クローンされます。
3. emulator ディレクトリへ移動する。
cd emulator
4. Makefile を修正する(重要)。
arm-linux-gnueabi-gcc が見つからないエラーを回避するための一時的な回避策です。本来の目的(クロスコンパイル)とは異なる動作になりますが、Raspberry Pi 上で直接ビルドして実行するために必要です。
sed -i 's/^CC=arm-linux-gnueabi-gcc -static -g/CC=gcc -static -g/' Makefile
5. md380tools をビルドする。
make
md380-emu という実行ファイルが作成されれば成功です。
3. 音声ファイルの AMBE 変換
ビルドした md380-emu ツールを使用して、WAV ファイルを AMBE 形式に変換します。
1. 変換したい WAV ファイルを作業ディレクトリ(~/tmp/md380tools/emulator)に用意する。例として音声ファイルをダウンロードする場合:
wget http://suseroot.com/misc/torvalds-says-linux.wav -O my_speech.wav
my_speech.wav を変換したいファイル名に置き換えてください。
2. WAV から RAW 形式(8 kHz / 16 bit / モノラル)に変換する。
sox my_speech.wav --bits 16 --encoding signed-integer -c1 -r 8000 -L my_speech.raw
3. RAW から AMBE 形式に変換する。
./md380-emu -e -i my_speech.raw -o my_speech.amb
my_speech.amb が生成されれば変換成功です。
4. AMBE ファイルの確認(オプション)
変換された AMBE ファイルをデコードし、再生して確認します。
1. AMBE から RAW 形式にデコードする。
./md380-emu -d -i my_speech.amb -o my_speech_decoded.raw
2. RAW から WAV 形式に変換する。
sox -r 8000 -e signed-integer -L -b 16 -c 1 my_speech_decoded.raw my_speech_decoded.wav
3. WAV ファイルを再生して確認する。
mplayer my_speech_decoded.wav
mplayer がインストールされていない場合は aplay my_speech_decoded.wav でも再生できます。
以上で、音声ファイルの AMBE 変換手順は完了です。
トラブルシューティング
make: *** [md380-emu.o] エラー 127(arm-linux-gnueabi-gccが見つからない):上記「手順 2-4 Makefile の修正」が正しく行われているか確認してください。Boost (missing: Boost_INCLUDE_DIR)/static assertion failed:これは本来 md380tools のリポジトリとは異なる「md380emu (rhgndf)」で発生したエラーです。本手順では Travis Goodspeed 氏の md380tools を使用しているため、このエラーは発生しないはずです。発生した場合はリポジトリが正しいか、最新の状態かを確認してください。soxまたはmplayerが見つからない:手順 1-2 でパッケージが正しくインストールされているか確認してください。