4

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

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

3 ответа3

5

Да, Microsoft сделала это снова. Текст в речь был удален из Word 2007.
К счастью, есть довольно простой способ реализовать это с небольшим количеством макрокода.

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

образ

1

Текст в речь в MS Word 2007

Ниже приведены макросы для включения TTS. Эти макросы должны быть помещены в «normal.dot», чтобы он загружался вместе с приложением MS Word.

Нажмите Alt+F11, чтобы перейти в редактор макросов и вставьте этот код. Вам нужно добавить три кнопки на панель быстрого доступа. Вы можете сделать это, нажав маленькую стрелку вниз, указывающую «Настроить панель быстрого доступа» в строке заголовка MS Word, где вы найдете кнопки сохранения, отмены и возврата. Выберите «Больше команд» в раскрывающемся меню, чтобы открыть окно «Параметры Word». Выберите «Настроить» в левом меню, а «Выбор команд из» должен быть установлен в «Макросы». Добавьте все три макроса, и это создаст три кнопки на панели быстрого доступа. Теперь ваше слово MS включено 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

Источник

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .