Межбраузерный голос в SpeechSynthesis

#javascript #speech-synthesis

#javascript #синтез речи

Вопрос:

Я пытаюсь преобразовать текст в речь, используя SpeechSynthesisUtterance. Пример, приведенный в MDN, отлично работает с одним браузером, но speechSynthesis.getVoices() возвращает разное количество голосов в каждом браузере и ОС. (22 в Windows Chrome, 3 в firefox chrome, 40 в ubuntu Chrome, 100 в ios Safari).

Я хотел использовать голос Tessa en-ZA , но, похоже, он доступен только в Safari. Существует ли для этого кроссбраузерное решение, чтобы голос был одинаковым во всех браузерах (например, загрузка голосового URI в каждом браузере)?

Комментарии:

1. Кроссбраузерный, в пределах одной и той же ОС, да, вероятно, например, Microsoft David / Zira (поскольку они предоставляются ОС), но, я думаю, не кросс-ОС

2. следует оставить выбор голоса за пользователем, поэтому для этого есть api, если вы лично предпочитаете Tessa, тогда используйте Safari, я на Linux, chrome У меня около 10 голосов, все звучат как C-3PO.

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

4. @LawrenceCherone Просить пользователя каждый раз задавать голос не будет хорошей идеей. Я мог бы сохранить выбранный пользователем голос, но это значение не будет полезно, если тот же пользователь в следующий раз использовал другой браузер. Итак, я просто пытаюсь найти способ воспроизводить один и тот же звук для всех пользователей в приложении, независимо от браузера / ОС.