Skip to content

サンプル

Deviceを発見

USB Speakerを接続し、デバイスの検索をおこないます。

!python3 -m sounddevice

12 Audio Advantage MicroII: USB Audio (hw:3,0), ALSA (0 in, 2 out) がUSB Speakerになります。 上図のような結果から、12がUSB Speakerであることを見分けるポイントは、2 outの部分です。2 outの2の部分がSpeakerの数を示しています。12がUSB Speakerであることが明確になったので、sounddeviceで12を指定します。 USB SpeakerのOutputが見つからない場合は、JetsonのDockerをCommitした上で、Jetsonを再起動します。

sd.default.device = 12

Sampleコード

mp3ファイルの作成

from gtts import gTTS
from pydub import AudioSegment

file_name = "hello"

tts = gTTS('こんにちわ',lang='ja')
tts.save(file_name+".mp3")
sound = AudioSegment.from_mp3(file_name+".mp3")
sound.export(file_name+".wav", format="wav", parameters=['-ar', '48000'])

Jetsonでの再生

import sounddevice as sd
import time
import soundfile as sf

sd.default.device = 12
(data, frame_rate) = sf.read(file_name+".wav")
print(fs)
sd.play(data, frame_rate)
sd.wait()

関数化

関数化します。

from gtts import gTTS
from pydub import AudioSegment
import sounddevice as sd
import time
import soundfile as sf

def make_speak(file_name, word):
    tts = gTTS(word,lang='ja')
    tts.save(file_name+".mp3")
    sound = AudioSegment.from_mp3(filename+".mp3")
    sound.export(file_name+".wav", format="wav", parameters=['-ar', '48000'])

def speak(file_name):
    sd.default.device = 12
    (data, frame_rate) = sf.read(file_name+".wav")
    print(fs)
    sd.play(data, frame_rate)
    sd.wait()

make_speak("hello", "おはようございます、朝です")
speak("hello")