Замена текста в речь для Word

похоже, что Microsoft решила удалить преобразование текста в речь из Word 2007. Есть ли достойная замена, предпочтительно, которая не требует отдельного приложения? Я бы хотел, чтобы он читался прямо из word.

Это на самом деле не вопрос доступности. Я просто хотел бы услышать, что я пишу вслух. Это делает плохую формулировку более очевидной.

20
задан Simon Sheehan
03.01.2023 19:23 Количество просмотров материала 3170
Распечатать страницу

3 ответа

да, Microsoft сделала это снова. Преобразование текста в речь удалено из Word 2007.

К счастью, есть довольно простой способ реализовать его с небольшим количеством кода макроса.

статьи текст в речь описывает, как добавить в Word две кнопки с помощью макросов VBA, SpeakText и StopSpeaking.

image

5
отвечен harrymc 2023-01-05 03:11

преобразование текста в речь в MS Word 2007

ниже приведены макросы для включения TTS. Эти макросы должны быть помещены в " normal.точка", поэтому он загружается вместе с приложением MS word.

Нажмите Alt+F11 для перехода в редактор макросов и вставьте этот код. Нужно добавить три кнопки на панель быстрого доступа. Вы можете сделать это, нажав маленькую стрелку вниз, сообщающую "настроить панель быстрого доступа" в строке заголовка MS word, где вы найдете Сохранить, Отменить и повторить кнопочный. Выберите " Дополнительные команды "в раскрывающемся меню, чтобы открыть окно" Параметры Word". Выберите "Настроить" в меню слева и "выбрать команды из "должен быть установлен в "макросы". Добавьте все три макроса, и это создаст три кнопки на панели инструментов быстрого доступа. Теперь ваш MS word включен TTS.

Option Explicit
Dim speech As SpVoice
Dim i As Integer

Sub SpeakText()
On Error Resume Next
If i = 0 Then
  Set speech = New SpVoice
  If Len(Selection.Text) > 1 Then 'speak selection
  speech.Speak Selection.Text, _
  SVSFlagsAsync + SVSFPurgeBeforeSpeak
  Else 'speak whole document
  speech.Speak ActiveDocument.Range(0, _
    ActiveDocument.Characters.Count).Text, _
    SVSFlagsAsync + SVSFPurgeBeforeSpeak
  End If
Else
  If i = 1 Then
  speech.Resume
  i = 0
  End If
End If
End Sub

Sub StopSpeaking()
On Error Resume Next
speech.Speak vbNullString, SVSFPurgeBeforeSpeak
Set speech = Nothing
i = 0
End Sub

Sub PauseSpeaking()
On Error Resume Next
If i = 0 Then
  speech.pause
  i = 1
Else
  If i = 1 Then
  speech.Resume
  i = 0
  End If
End If
End Sub

Source

1
отвечен 2023-01-05 05:28

вы всегда можете попробовать скопировать / вставить текст в ReadPlease. Он имеет платную и бесплатную версии, и бесплатные версии работает великолепно! просто установите, скопируйте мимо вашего текста, и вы прочь! :)

0
отвечен studiohack 2023-01-05 07:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх