Замена синтеза речи по тексту для Word

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

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

4
задан 02.11.2011, 01:54

3 ответа

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

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

image

5
ответ дан 07.12.2019, 20:11

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

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

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

Источник

1
ответ дан 07.12.2019, 20:11

Вы могли всегда пытаться копировать/вставлять текст в ReadPlease. Это это имеет бесплатные и заплаченные версии и бесплатные версии, работает отлично! Просто установка, копия мимо Вашего текста, и Вы прочь!:)

0
ответ дан 07.12.2019, 20:11

Теги

Похожие вопросы