• 回答数

    4

  • 浏览数

    134

jennyzhao701
首页 > 英语培训 > 英语音标自动标注

4个回答 默认排序
  • 默认排序
  • 按时间排序

烈香杜鹃7366

已采纳

之前搞过一个,包括多个翻译结果、音标、例句——网页返回结果中都有,甚至可以点击发音【音频文件从另一个网页获取】,等有空我找找

使用VBA,需要添加引用:XML和HTML【注:今天测试,代码不能运行了,测试发现是有道网页返回的内容变了,解析路径不对了~~,音标的内容好像也没有了!!以下代码仅供参考吧】

右击工作表,查看代码,粘贴以下代码:

Sub FanYi(Wrd As String, Target As Range)

'Author: cnbubble,

'版本1——使用有道获取翻译意思、音标、例句;从获得MP3发音文件。【发音的代码未复制】

Dim xlmDoc As DOMDocument

Dim xlmNodes As IXMLDOMNodeList

Dim S As String, i As IXMLDOMNode, J As Integer, tagPos As Integer

Dim oExec

Wrd = Trim(Wrd)

If Wrd = "" Then Exit Sub

oExec = CreateObject("Wscript.shell").Run("ping dict.youdao.com -n 1", 0, True)

If oExec <> 0 Then Target.Offset(0, 1).Value = "可能未联网,翻译功能不可用!": Exit Sub

Application.EnableEvents = False

Set xlmDoc = New DOMDocument

xlmDoc.async = False

If xlmDoc.Load("http://dict.youdao.com/search?q=" & Wrd & "&doctype=xml") Then

Set xlmNodes = xlmDoc.SelectNodes("//translation/content")    '翻译内容

S = ""

For Each i In xlmNodes

S = S & i.Text & vbCrLf

Next

Target.Offset(0, 1).Value = Left(S, Len(S) - 2)

Set xlmNodes = xlmDoc.SelectNodes("//phonetic-symbol")        '音标

S = ""

For Each i In xlmNodes

S = S & "/  " & i.Text & "  /" & vbCrLf

Next

Target.Offset(0, 2).Value = Left(S, Len(S) - 2)

Target.Offset(0, 2).Font.Color = -11489280

Set xlmNodes = xlmDoc.SelectNodes("//example-sentences/sentence-pair")   '例句

J = 3

For Each i In xlmNodes

S = i.childNodes(0).Text & vbCrLf & i.childNodes(2).Text

tagPos = InStr(S, "")

S = Replace(S, "", "")

S = Replace(S, "", "")

With Target.Offset(0, J)

.Value = S

.Characters(tagPos, Len(Wrd)).Font.Bold = True

.Characters(tagPos, Len(Wrd)).Font.Color = vbRed

End With

J = J + 1

Next

End If

Application.EnableEvents = True

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column > 1 Or Target.Row = 1 Or Target.Cells.Count > 1 Then Exit Sub

Call FanYi(Target.Value, Target)

End Sub

'在A列输入要翻译的词,自动在后面显示所有的翻译结果、音标、三个例句,这是之前实现的。现在不运行了!!。

如果只实现音标,可以从网页获取:VBA,插入一个模块,粘贴下面的代码:

Public Function getPhon(Wrd As String) As String

'查询一个单词的音标

Dim htmlDoc As String, sPhon As String

Dim oMatch

With CreateObject("Microsoft.XMLHTTP")

.Open "GET", "http://dict.youdao.com/search?q=" & Wrd, False

.send

htmlDoc = .responseText

End With

With CreateObject("VBScript.RegExp")

.Global = False

.Pattern = "([^<]+)"

Set oMatch = .Execute(htmlDoc)

If oMatch.Count > 0 Then

getPhon = oMatch(0).submatches(0)

End If

End With

End Function

在工作表中,就像使用自带的函数一样:

之间给出字符串:

或者单元格引用:

英语音标自动标注

195 评论(12)

掬黛小公主

有的,我用的是老师给我们同学建议的软件,可以输入单词以后自动有词义和音标的,然后就自建词库了,电脑版和手机版都有的,叫做角斗士我爱背单词9(注意一定是角斗士系列的flyenglish),外教真人发音清晰,每天自己可以决定背多少个,软件能够根据遗忘曲线自动提醒该复习的词汇,这样反复复习就记住了,而且还能把单词制作成mp3文件来听,北大老师制作的,这个是角斗士系列的,十大品牌的,你去淘宝找一下就有的。

302 评论(12)

平凡yifen

想要在一篇文章或一份英语试卷中输入英语音标,有一个非常简单的办法可以实现。如果你的计算机中装有《金山词霸》的话,在把英语翻译成中文时,你一定会发现屏幕上显示出了用国际音标标注的英文单词的发音音标,这表明计算机在安装了《金山词霸》后,在其内部安装了含有英语音标的字库。这个字库文件就在Windows文件夹下的字体文件夹Fonts中,其文件名是ksphonet.ttf,字体名是kingsoftphonetic。进入中文Word2000,需要输入音标时,可在“插入”菜单下选择“符号”,在“符号”选项卡的“字体”下拉菜单中选择“kingsoftphoneticplain”,这时你会看到国际音标中的符号出现在屏幕上,选择你所需要的音标双击之,即可将其插入到文章中。如果你的计算机中没有安装《金山词霸》,那也没关系,你只要到装有《金山词霸》的机器上(或光盘中)把含有音标的字体文件ksphonet.ttf复制到你的计算机中即可。

293 评论(10)

逍遥石子

换个接口试试

347 评论(12)

相关问答