ラズパイ5追加のセットアップ(1)

    とりあえず動作確認したラズパイ5ですが、目的用途のための動作確認などを、
    1. 起動媒体

まず、間に合わせ使ったsdカードがメチャクチャ遅い、ドラレコから抜いてきたからほぼ寿命終わりらしい

かなり昔のusbメモリにインストして立ち上げた方がはるかに高速、なので追加でSDカード(UHS-1規格)購入してインストすると体感かなりサクサク

shutdown ~ reboot(ログオン完了)時間は、

Shutdown ~ reboot時間
どちらもヘッドレス、
古いmicro SD : 1:40 min/ 2:20 min(媒体終わってるよね)
Stick USB : 1:10 min

SDカード(UHS-1):40 sec(デスクトップモードなのに)

という結果、ついでにsdカードのベンチマークは、

UHS-1カードのPiBenchmarks結果

$ sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash

     Category                  Test                      Result     
HDParm                    Disk Read                 90.82 MB/sec             
HDParm                    Cached Disk Read          90.94 MB/sec             
DD                        Disk Write                32.5 MB/s                
FIO                       4k random read            6317 IOPS (25268 KB/s)   
FIO                       4k random write           845 IOPS (3382 KB/s)     
IOZone                    4k read                   29989 KB/s               
IOZone                    4k write                  3288 KB/s                
IOZone                    4k random read            30032 KB/s               
IOZone                    4k random write           3268 KB/s                

                          Score: 2530                             

ラズパイ5ではおそらく平均的な値だろう

 

2. Pythonのインスト

ラズパイではpyenvを使うことが推奨というかほぼマストです

https://zenn.dev/technicarium/articles/00b32d390e82ec

がわかりやすかったのでこのサイトとPerplexityでPyenvと現状安定版の最終3.13.1をインスト、必要なライブラリは都度

 

3. text2speechでスピーカ機能も確認

音声の入出力にUSB接続のマイクとスピーカーを使いますが、その機能確認含めて、ロワーケースはssd用HAT(見た目ロワ側なのでHATじゃなくてHAB、そのそも上側にはGPIOコントロールのカスタムボードが追加されるし)に置き換えてます

フリーのopen_jtalkのインストと動作確認

open-jtalkインスト
$ sudo apt-get update
$ sudo apt-get install -y open-jtalk open-jtalk-mecab-naist-jdic htsengine libhtsengine-dev hts-voice-nitech-jp-atr503-m001

女性の声のインスト
$ wget https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.7/MMDAgent_Example-1.7.zip
$ unzip MMDAgent_Example-1.7.zip
$ sudo cp -r ./MMDAgent_Example-1.7/Voice/* /usr/share/hts-voice/

合成音声(text2speech)のサンプルコード(Perplexityで作成)

#
# pactl set-sink-volume @DEFAULT_SINK@ +10%      音量アップ
#
import subprocess
import os
from datetime import datetime

def jtalk(text):
    open_jtalk = ['/usr/bin/open_jtalk']
    mech = ['-x', '/var/lib/mecab/dic/open-jtalk/naist-jdic']
    htsvoice = ['-m', '/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice']
    speed = ['-r', '1.0']
    outwav = ['-ow', 'out.wav']
    cmd = open_jtalk + mech + htsvoice + speed + outwav
    
    try:
        proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        stdout, stderr = proc.communicate(input=text.encode('utf-8'))
        
        if proc.returncode != 0:
            print(f"Error in open_jtalk: {stderr.decode('utf-8')}")
            return
        
        if not os.path.exists('out.wav'):
            print("Error: out.wav was not generated.")
            return
        
        # Raspberry Pi での音声再生
        subprocess.call(['aplay', 'out.wav'])
    except Exception as e:
        print(f"An error occurred: {e}")

if __name__ == '__main__':
    current_time = datetime.now().strftime("%H時%M分")
    text = f"現在の時刻は{current_time}です。"
    jtalk(text)

 

4. マイク機能の確認

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 2: SF558 [SF-558], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

のように見えているので、Linuxの基本コマンドで確認

// record
$ arecord -d 5 -r 12000  out.wav
// play
$ aplay out.wav

後ペリフェラルではカメラ必要だけど、それはリサーチの後だな、それにステッピングモータとか駆動させるとACアダプタ5Aで足りるのかな?

 

admin

 

コメントを残す