Кажется, что Microsoft решила удалить синтез речи по тексту из Word 2007. Существует ли достойная замена, предпочтительно который не требует отдельного приложения? Я хотел бы, чтобы это читало непосредственно из слова.
Это не действительно вопрос о доступности, также. Я был бы точно так же, как, чтобы смочь услышать то, что я пишу вслух. Это делает плохую формулировку более очевидной.
Да, Microsoft сделала это снова. Синтез речи по тексту был удален из Word 2007.
К счастью, существует довольно простой способ реализовать его с определенным макро-кодом.
Текст статьи Word к речи описывает, как добавить к Word две кнопки с помощью макросов VBA, SpeakText и StopSpeaking.
Текст к речи в 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
Вы могли всегда пытаться копировать/вставлять текст в ReadPlease. Это это имеет бесплатные и заплаченные версии и бесплатные версии, работает отлично! Просто установка, копия мимо Вашего текста, и Вы прочь!:)