Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TTS Component #985

Merged
merged 34 commits into from
Apr 2, 2024
Merged

TTS Component #985

merged 34 commits into from
Apr 2, 2024

Conversation

larentoun
Copy link
Collaborator

@larentoun larentoun commented Feb 3, 2024

Что этот PR делает

  • Вынес tts_seed из под атома в отдельный компонент
  • Теперь нужно выдавать tts_component, чтобы атом говорил с ТТС
  • Добавлен в VV Change TTS для простоты смены ТТС сидов / добавления ТТС компонента
  • В большинстве случаев, ТТС работает через компонент. Исключение - глобальные оповещения.

fixes #560

Нужно

  • проверить работу с API
  • проверить на тестовом сервере
  • доработать больше... компонентности? Меня лично не до конца устраивает текущая реализация, нужны идеи.
  • хранить трейты (например, силикон для роботизации голоса) в компоненте и дать возможность передавать в ините
  • обновить выдачу компонента у заранее предзаписанных мобов

Почему это хорошо для игры

  • Теперь всё может говорить, если захотеть

Тестирование

SILERO API ERROR

Список для теста:

  • Без спецификации, выдаётся случайный сид для ТТС компонента
  • Подтягивается сид с префов игрока
  • Clone DNA - генокрад ворует компонент
  • Работоспособность TTS эксплорера

Changelog

🆑
add: В ViewVariables добавлен пункт Change TTS
add: Компонент tts_component, который позволяет выдать голос всем атомам
/:cl:

@larentoun
Copy link
Collaborator Author

Заметка для себя, пока не забыл: хранить трейты (типо "силикон" в компоненте, чтобы можно было роботизировать голосы не роботов)

Comment on lines 36 to 44
/mob/hear_say(list/message_pieces, verb, italics, mob/speaker, sound/speech_sound, sound_vol, sound_frequency, use_voice)
. = ..()
if(!client)
return
if(!can_hear())
return

var/message_tts = combine_message_tts(message_pieces, speaker)
var/effect = isrobot(speaker) ? SOUND_EFFECT_ROBOT : SOUND_EFFECT_NONE
var/traits = TTS_TRAIT_RATE_FASTER
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(tts_cast), speaker, src, message_tts, speaker.tts_seed, TRUE, effect, traits)
SEND_SIGNAL(speaker, COMSIG_ATOM_CAST_TTS, src, message_tts, speaker, TRUE)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может лучше перенести тогда эта логику в компонент и там ловить сигнал (если нет, добавить) типа MOB_HEARD_SAY

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тоже думал об этом, попробую как-то различить радио_сей/хир_сей/какойеще_сей

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может лучше перенести тогда эта логику в компонент и там ловить сигнал (если нет, добавить) типа MOB_HEARD_SAY

По возможности как-то сделал, postSFX всё-таки нужно вместе с сигналом отправлять уже явно, либо не знаю как иначе

modular_ss220/text_to_speech/code/hear.dm Outdated Show resolved Hide resolved
modular_ss220/text_to_speech/code/hear.dm Show resolved Hide resolved
modular_ss220/text_to_speech/code/hear.dm Outdated Show resolved Hide resolved
add_tts_component()

// TODO: Do it better?
/atom/proc/get_tts_seed()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В теории, можно слать сигнал и возвращать что то из него, так узнавая сид, но как то еще более костыльно звучит

@Furrior
Copy link

Furrior commented Feb 3, 2024

Ещё мб использовать датумы сидов вместо строк. Позволит использовать несколько ттс провайдеров сразу в перспективе

@Gaxeer
Copy link
Collaborator

Gaxeer commented Feb 3, 2024

Ещё мб использовать датумы сидов вместо строк. Позволит использовать несколько ттс провайдеров сразу в перспективе

База. ТТС должен быть провайдеронезависим

@larentoun
Copy link
Collaborator Author

А вот теперь пора наводить красоту и дорабатывать. Что еще доработать надо?

@larentoun larentoun requested review from Gaxeer and Furrior February 5, 2024 14:47
@larentoun larentoun changed the title [DRAFT] TTS Component TTS Component Feb 6, 2024
@larentoun larentoun marked this pull request as ready for review February 6, 2024 09:53
@AyIong
Copy link
Collaborator

AyIong commented Feb 7, 2024

Может отключить ТТС от автоматических оповещений?

@Furrior
Copy link

Furrior commented Feb 7, 2024

Может отключить ТТС от автоматических оповещений?

Только если записать/стырить для них озвучку

@AyIong
Copy link
Collaborator

AyIong commented Feb 7, 2024

Может отключить ТТС от автоматических оповещений?

Только если записать/стырить для них озвучку

Да стандартная пока сойдёт, явно лучше чем наложение ТТСа на неё, к тому же дефолт звучит лучше

@AyIong
Copy link
Collaborator

AyIong commented Feb 26, 2024

Ну чё там?

@larentoun
Copy link
Collaborator Author

А да, надо было? Ну, теперь есть xdx

Copy link

@Furrior Furrior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Игроки потестят

@github-actions github-actions bot added the Merge Conflict Ну блять... label Mar 11, 2024
@github-actions github-actions bot removed the Merge Conflict Ну блять... label Mar 11, 2024
@larentoun
Copy link
Collaborator Author

чет даже конфликтов не было, просто мержнул мастер, ну ладно

@github-actions github-actions bot added the Merge Conflict Ну блять... label Mar 19, 2024
@dj-34
Copy link
Collaborator

dj-34 commented Mar 19, 2024

!merge_upstream

@dj-34
Copy link
Collaborator

dj-34 commented Mar 19, 2024

А эта то хуйня че не работает...

@Furrior
Copy link

Furrior commented Mar 19, 2024

Работает же

Copy link

@Furrior
Copy link

Furrior commented Mar 19, 2024

Вот

@Furrior
Copy link

Furrior commented Mar 19, 2024

Просто хуево

@dj-34
Copy link
Collaborator

dj-34 commented Mar 19, 2024

ладно, похуй, там конфликт который нужно ручками устранять

@github-actions github-actions bot removed the Merge Conflict Ну блять... label Mar 20, 2024
@larentoun
Copy link
Collaborator Author

вот би мерж

@Legendaxe Legendaxe merged commit fe2fb04 into ss220club:master Apr 2, 2024
13 checks passed
@larentoun larentoun deleted the tts-component branch April 2, 2024 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Нет ТТС при atom_say()
6 participants