Звук
Чтобы воспроизвести звуки, вы должны сначала импортировать класс Sound и создать экземпляр этого класса, чтобы каждый приведенный ниже сценарий включал
from ev3dev2.sound import Sound
sound = Sound()

все описанные здесь звуковые функции, имеющие параметр play_type , который по умолчанию равен 0. Вот значения трех возможных значений play_type:
0: воспроизвести звук и заблокировать программу до ее завершения. Это значение по умолчанию.1: Воспроизведение звука без блокировки программы.2: Воспроизвести звук как петлю , блокируя программу. Цикл можно завершить, только уничтожив программу, так что эта опция не очень полезна.Воспроизвести стандартный звуковой сигналИспользовать   звуковой сигнал ( play_type=0 )
Пример: 
#!/usr/bin/env python3from ev3dev2.sound import Sound
sound = Sound()
sound.beep()
Обратите внимание, что по умолчанию команда beep() блокирует (приостанавливает) выполнение программы до тех пор, пока не завершится воспроизведение звука. Для получения дополнительной информации см. официальную документацию .
Воспроизвести ОДИН тонЧтобы воспроизвести ОДИН тон заданной частоты n (Гц) и длительности (секунды), используйтеplay_tone ( частота, продолжительность,  play_type=0 )
Пример: Чтобы воспроизвести один тон частотой 1500 Гц в течение 2 секунд (2000 миллисекунд):
#!/usr/bin/env python3from ev3dev2.sound import Sound
sound = Sound()
sound.play_tone(1500, 2)Официальная документация .
Воспроизведение ПОСЛЕДОВАТЕЛЬНОСТИ тоновВ настоящее время (октябрь 2018 г.) новая функция play_tone() не может воспроизводить последовательность тонов, а старая функция tone() может. Поэтому, чтобы воспроизвести ПОСЛЕДОВАТЕЛЬНОСТЬ тонов, используйте    тон( tone_sequence )
Параметр tone_sequence представляет собой список кортежей, где каждый кортеж содержит до трех чисел. Вы уже должны знать, что кортеж похож на список, за исключением того, что список можно изменить, а кортеж — нет. Первое число — это частота в Гц, второе — продолжительность в миллисекундах, а третье — задержка в миллисекундах между этим и следующим тоном в последовательности.
#!/usr/bin/env python3

from ev3dev2.sound import Sound

sound = Sound()

# Play a 200Hz tone for 2 seconds and then wait 0.4 seconds
# before playing the next tone, 800Hz for 1 second
# followed by a 3 second delay
sound.tone([(200, 2000, 400),(800, 1000, 3000)])
Официальная документация.

Воспроизведение звукового файла WAVЧтобы воспроизвести звуковой файл WAV, используйте      play_file( wav_file,  play_type=0 )  .  Вы не можете использовать файлы mp3 с командой  воспроизведения  , а также звуковые файлы Lego в формате RSF или RSO. Внизу этой страницы я разместил ZIP-файл, содержащий все звуки Lego в формате WAV . Все звуки находятся в одной папке, а не разнесены по разным папкам, как в EV3-G. Все сценарии на этом сайте, использующие эти звуки, предполагают, что вы поместили их в папку «звуки» внутри папки «робот». Поэтому адрес папки «звуки» будет  /home/robot/sounds/ . Самый простой способ сделать это — открыть папку звуков в VS Code, а затем щелкнуть значок «Отправить проект на устройство» в заголовке браузера устройств EV3. Это так просто! Мои сценарии предполагают, что вы загрузили звуки EV3 в EV3, как только что было описано. Это похоже на то, как мои сценарии предполагают, что вы поместили все изображения Lego в формате BMP в папку с именем «pics» в папке «robot», как описано на  этой странице . Если вы прошьете новый образ Stretch на свою SD-карту, папки «звуки» и «изображения» (и все ваши сценарии) будут удалены, поэтому вам нужно будет снова загрузить их на EV3.
Вот список звуков EV3 без расширений файлов .wav:

Хорошим источником дополнительных бесплатных звуковых файлов WAV является  Wavsource.com . Однако у меня была проблема с файлом WAV, который я скачал оттуда — я получил сообщение об ошибке «недостаточное выполнение», когда запускал свой скрипт, что предполагает, что звуковой файл был поврежден. Если вы получите такое же сообщение, удалите этот звуковой файл и попробуйте другой. Если вы хотите добавить дополнительные звуковые файлы WAV в папку «звуки», которую вы уже создали, как было предложено выше, просто добавьте файлы WAV к существующим файлам в папке «звуки» на вашем ПК, а затем снова загрузите всю папку в EV3. как описано выше.
Если у вас есть папка «sounds», содержащая, среди прочего, файл «Dog bark 1.wav» внутри папки «robot» на EV3, вы сможете запустить следующий скрипт. Звуковой сигнал включен, чтобы доказать вам, что программа приостанавливается (блокируется) до тех пор, пока собака не перестанет лаять перед воспроизведением звукового сигнала:
#!/usr/bin/env python3
from ev3dev2.sound import Sound
from time import sleep

sound = Sound()

sound.play_file('/home/robot/sounds/Dog bark 1.wav')
sound.beep()
Официальная документация .

Текст в речьИспользовать   говорить ( текст,  play_type=0 )
Попробуйте этот сценарий ниже, который не требует пояснений. Обратите внимание, что вы можете контролировать амплитуду (громкость), скорость и язык, и что вы можете каркать и шептать, если хотите! Функция speak() на самом деле управляет основной функцией espeak() . Функция espeak() имеет значения по умолчанию для амплитуды и скорости 100 и 175, но они переопределяются значениями по умолчанию speak() , которые равны 200 и 130. Для получения дополнительной информации см  . espeak.sourceforge.net  . Обратите внимание, как немного деформирован английский текст, чтобы он звучал лучше. Попробуйте изменить комментарий/раскомментировать, чтобы услышать неизмененный текст.

#!/usr/bin/env python3из ev3dev2.sound импорт звука
звук = звук()# см. http://espeak.sourceforge.net/# значения -a 200 -s 130 ДОЛЖНЫ БЫТЬ ВКЛЮЧЕНЫ при указании любых других параметров# a = амплитуда (макс. 200, по умолчанию 100), s = скорость 80-500, по умолчанию = 175)
опции = ‘-a 200 -s 130 -v’# str_en = «Я думаю, вы должны знать, я чувствую себя очень подавленным»str_en = «Думаю, вам следует знать, они очень подавлены»# Голос по умолчанию = английский, мужскойзвук.говорить(str_en)# Английский, male1 (самый низкий мужской тон)sound.speak(str_en, espeak_opts=’-a 200 -s 130 -v en+m1 ‘) # длинная форма# английский, мужской7 (самый высокий мужской тон)sound.speak(str_en, espeak_opts=opts+’ en+m7 ‘) # используя мою переменную ‘opts’# английский, женский1 (самый низкий женский тон)sound.speak(str_en, espeak_opts=opts+’ en+f1 ‘)# английский, женский5 (самый высокий женский тон)sound.speak(str_en, espeak_opts=opts+’ en+f5 ‘)# квакатьsound.speak(str_en, espeak_opts=opts+’ en+croak ‘)# шепотsound.speak(str_en, espeak_opts=opts+’ en+whisper ‘)# en-us = американский английскийsound.speak(str_en, espeak_opts=opts+’ en-us ‘)# en-rp = Полученное произношение («BBC English»)sound.speak(str_en, espeak_opts=opts+’ en-rp ‘)# s = 80 — самая низкая возможная скоростьsound.speak(str_en, espeak_opts=’-a 200 -s 80 ‘)# s = 300 — высокая скоростьsound.speak(str_en, espeak_opts=’-a 200 -s 300 ‘)
# Французскийstr_fr = ‘Le chat est sous la chaise! Le singe est sur la branche!sound.speak(str_fr, espeak_opts=opts+’ fr ‘)# Французский, высокий мужской тонsound.speak(str_fr, espeak_opts=opts+’ fr+m7 ‘)# француженка, женщина довольно низкого тонаsound.speak(str_fr, espeak_opts=opts+’ fr+f2 ‘)# См. http://espeak.sourceforge.net/languages.html# для других языков
См. также пример в нижней части комбинированного примера ниже. Кажется, есть (по состоянию на октябрь 2018 года) небольшая ошибка: если ваша строка заканчивается точкой, то произносимые слова будут заканчиваться словом «точка». Решение: либо опустить последнюю точку, либо поставить после нее пробел.
Комбинированный примерПример программы для демонстрации воспроизведения звуковых сигналов, тонов и преобразования текста в речь:#!/usr/bin/env python3
from ev3dev2.sound import Sound
from time import sleep

sound = Sound()

#play a standard beep
sound.beep()

sleep(2) # pause for 2 seconds

# Play a SINGLE 2000 Hz tone for 1.5 seconds
sound.play_tone(2000, 1.5)

sleep(2)

# Play a SEQUENCE of tones
sound.tone([(200, 2000, 400),(800, 1800, 2000)])

sleep(2)

# Play a 500 Hz tone for 1 second and then wait 0.4 seconds
# before playing the next tone
# Play the tone three times
sound.tone([(500, 1000, 400)] * 3)

sleep(2)

#text to speech
sound.speak('Hello, my name is E V 3!')