Голос для говорящих часов: свои часы любым голосом
Говорящие часы произносят время вслух: каждый час, по нажатию кнопки или в заданное время. У готовых часов один встроенный голос. Если хочется, чтобы время объявлял диктор, мультяшный персонаж или кто-то из семьи, такие часы можно собрать самому.
В этом руководстве — как один раз озвучить каждое время суток бесплатным движком SuperClonica и как проигрывать нужный файл на Raspberry Pi или любом компьютере с Linux, без интернета и подписки.
Озвучьте каждое время один раз
В сутках 1440 минут, так что 1440 коротких файлов покрывают любое время; для ежечасных объявлений хватит 24. Пишите время словами так, как оно должно звучать, например «Семь часов пять минут» или «Половина десятого», чтобы голосу не приходилось угадывать, как читать 07:05. Поставьте бесплатный движок командой python -m pip install superclonica-cpu и в Python после from superclonica import Superclonica, tts = Superclonica(), then for h in range(24) and m in range(60): text = words(h, m); audio, rate = tts.synthesize(text, voice="voice.json", lang="ru", seed=4); tts.save(f"{h:02d}{m:02d}.wav", audio), где words — небольшая функция, которую вы пишете для своего языка. Фиксированный seed сохраняет голос одинаковым во всех файлах.
Проигрывайте нужный файл каждый час
На Raspberry Pi или любом компьютере с Linux и динамиком планировщик cron может проигрывать файл текущего времени. Строка crontab вроде 0 * * * * aplay /home/pi/clock/$(date +\%H\%M).wav объявляет время в начале каждого часа. В crontab знак процента нужно писать как \%, иначе cron превращает его в перевод строки. Для кнопки запускайте ту же команду aplay из скрипта, который запускает кнопка.
Выберите голос
Попробуйте голоса бесплатно на их страницах с одним объявлением времени, 30–100 символов, без регистрации: спокойный диктор для прикроватных часов, голос персонажа для детской. Для часов голосом члена семьи запишите 5–10 секунд его чистой речи с его согласия и обучите голос в студии; обучение на своей видеокарте NVIDIA бесплатно.
Часы на других языках
Движок говорит на 31 языке; китайский пока не поддерживается. В каждом языке время называют по-своему: в русском слова «час» и «минута» меняют форму вместе с числом (один час, два часа, пять часов), в немецком 7:30 — это «halb acht», а в японском используют 時 и 分. Пропишите слова времени для своего языка в функции и послушайте несколько файлов в разное время, прежде чем озвучивать все сутки.
Когда лучше готовые часы
Если человеку из-за слабого зрения нужно слышать время в любой момент, готовые говорящие часы или экранный диктор телефона проще и надёжнее самоделки. Свои говорящие часы хороши как хобби-проект, подарок со знакомым голосом или ежечасные объявления в мастерской, магазине или классе.