顯示具有 stardict 標籤的文章。 顯示所有文章
顯示具有 stardict 標籤的文章。 顯示所有文章

2011年11月29日 星期二

stardict 崩潰問題

stardict 可以直接由 oss 套件庫安裝,所以您只要
# zypper in stardict

就可以安裝了

但是一執行就會崩潰
由終端機執行可看見訊息:
$ stardict
已載入 Espeak 擴充元件。
Dict.cn plug-in loaded.
Spelling plugin loaded.
已載入 Man 擴充元件。
HTML data parsing plug-in loaded.
WordNet dict rendering plug-in loaded.
QQWry plug-in loaded.
Wiki data parsing plug-in loaded.
WordNet data parsing plug-in loaded.
XDXF data parsing plug-in loaded.
PowerWord data parsing plug-in loaded.
[message] Verifying dictionary '/usr/share/stardict/dic/stardict-dictd_www.mova.org_slovnyk_ru-en-2.4.2/dictd_www.mova.org_slovnyk_ru-en.ifo'...
[message] Loading index file: '/usr/share/stardict/dic/stardict-dictd_www.mova.org_slovnyk_ru-en-2.4.2/dictd_www.mova.org_slovnyk_ru-en.idx'...
[message] Loading dictionary file: '/usr/share/stardict/dic/stardict-dictd_www.mova.org_slovnyk_ru-en-2.4.2/dictd_www.mova.org_slovnyk_ru-en.dict.dz'...
[message] Dictionary '/usr/share/stardict/dic/stardict-dictd_www.mova.org_slovnyk_ru-en-2.4.2/dictd_www.mova.org_slovnyk_ru-en.ifo'. Verification result: OK.
[message] Verifying dictionary '/usr/share/stardict/dic/engcom/engcom.ifo'...
[message] Loading index file: '/usr/share/stardict/dic/engcom/engcom.idx.gz'...
[message] Loading dictionary file: '/usr/share/stardict/dic/engcom/engcom.dict.dz'...
[message] Dictionary '/usr/share/stardict/dic/engcom/engcom.ifo'. Verification result: OK.
[message] Verifying dictionary '/usr/share/stardict/dic/stardict-dict/stardict-dict.ifo'...
[message] Resource storage loaded. Type - files.
[message] Loading index file: '/usr/share/stardict/dic/stardict-dict/stardict-dict.idx'...
[message] Loading synonyms file: '/usr/share/stardict/dic/stardict-dict/stardict-dict.syn'...
[message] Loading dictionary file: '/usr/share/stardict/dic/stardict-dict/stardict-dict.dict.dz'...
[message] Dictionary '/usr/share/stardict/dic/stardict-dict/stardict-dict.ifo'. Verification result: OK.
bookname: StarDict dictionary, wordcount 9
bookname: Англо-русский словарь Мюллера, 7-я ред., wordcount 46195
bookname: dictd_www.mova.org_slovnyk_ru-en, wordcount 55820
bookname: Современный свободный словарь компьютерных терминов., wordcount 2389
(Gdk) [critical] IA__gdk_window_set_cursor: assertion `GDK_IS_WINDOW (window)' failed
**
ERROR:compositelookup.cpp:53:void CompositeLookup::send_net_dict_request(const string&, const string&): assertion failed: (NetDictRequests.end() == std::find(NetDictRequests.begin(), NetDictRequests.end(), request))
已經終止

最簡單的暫時解決方法就是移除 stardict_dictdotcn.so
# rm /usr/lib/stardict/plugins/stardict_dictdotcn.so

重新啟動 stardict
$ stardict
XDXF data parsing plug-in loaded.
Spelling plugin loaded.
HTML data parsing plug-in loaded.
QQWry plug-in loaded.
已載入 Man 擴充元件。
已載入 Espeak 擴充元件。
PowerWord data parsing plug-in loaded.
WordNet dict rendering plug-in loaded.
Wiki data parsing plug-in loaded.
WordNet data parsing plug-in loaded.
[message] Verifying dictionary '/usr/share/stardict/dic/stardict-langdao-ce-big5-2.4.2/langdao-ce-big5.ifo'...
[message] Loading index file: '/usr/share/stardict/dic/stardict-langdao-ce-big5-2.4.2/langdao-ce-big5.idx'...
[message] Loading dictionary file: '/usr/share/stardict/dic/stardict-langdao-ce-big5-2.4.2/langdao-ce-big5.dict.dz'...
[message] Dictionary '/usr/share/stardict/dic/stardict-langdao-ce-big5-2.4.2/langdao-ce-big5.ifo'. Verification result: OK.
[message] Verifying dictionary '/usr/share/stardict/dic/stardict-langdao-ec-big5-2.4.2/langdao-ec-big5.ifo'...
[message] Loading index file: '/usr/share/stardict/dic/stardict-langdao-ec-big5-2.4.2/langdao-ec-big5.idx'...
[message] Loading dictionary file: '/usr/share/stardict/dic/stardict-langdao-ec-big5-2.4.2/langdao-ec-big5.dict.dz'...
[message] Dictionary '/usr/share/stardict/dic/stardict-langdao-ec-big5-2.4.2/langdao-ec-big5.ifo'. Verification result: OK.
bookname: Современный свободный словарь компьютерных терминов., wordcount 2389
bookname: StarDict dictionary, wordcount 9
bookname: Англо-русский словарь Мюллера, 7-я ред., wordcount 46195
Save cache file: /usr/share/stardict/dic/stardict-langdao-ce-big5-2.4.2/langdao-ce-big5.idx.oft
bookname: 朗道漢英字典5.0, wordcount 395426
Save cache file: /usr/share/stardict/dic/stardict-langdao-ec-big5-2.4.2/langdao-ec-big5.idx.oft
bookname: 朗道英漢字典5.0, wordcount 423246
[warning] Binding 'x' failed! Already assigned.

(Gdk) [critical] IA__gdk_window_set_cursor: assertion `GDK_IS_WINDOW (window)' failed

雖然仍有錯誤訊息,但是勉強可用

後來又在 http://218.240.28.131/forum/viewtopic.php?f=5&t=946044 看到了一個 patch
試了一下,目前都無崩潰狀況,已提交 Educationhome:opensuse_zh
您也可以在 home:swyear 找到,
執行情況如下:
$ stardict
Wiki data parsing plug-in loaded.
HTML data parsing plug-in loaded.
PowerWord data parsing plug-in loaded.
QQWry plug-in loaded.
Spelling plugin loaded.
WordNet dict rendering plug-in loaded.
已載入 Man 擴充元件。
XDXF data parsing plug-in loaded.
WordNet data parsing plug-in loaded.
Dict.cn plug-in loaded.
已載入 Espeak 擴充元件。
[message] Verifying dictionary '/usr/share/stardict/dic/stardict-dict/stardict-dict.ifo'...
[message] Resource storage loaded. Type - files.
[message] Loading index file: '/usr/share/stardict/dic/stardict-dict/stardict-dict.idx'...
[message] Loading synonyms file: '/usr/share/stardict/dic/stardict-dict/stardict-dict.syn'...
[message] Loading dictionary file: '/usr/share/stardict/dic/stardict-dict/stardict-dict.dict.dz'...
[message] Dictionary '/usr/share/stardict/dic/stardict-dict/stardict-dict.ifo'. Verification result: OK.
bookname: 朗道漢英字典5.0, wordcount 395426
bookname: 朗道英漢字典5.0, wordcount 423246
bookname: 21世紀雙語科技詞典, wordcount 809239
bookname: 21世紀英漢漢英雙向詞典, wordcount 213086
bookname: 懶蟲簡明英漢詞典, wordcount 452184
bookname: 懶蟲簡明漢英詞典, wordcount 119522
bookname: JCEDict, wordcount 19973
Save cache file: /home/ray121/.cache/stardict/stardict-dict.idx.oft
Save cache file: /home/ray121/.cache/stardict/stardict-dict.syn.oft
bookname: StarDict dictionary, wordcount 9
bookname: Современный свободный словарь компьютерных терминов., wordcount 2389
bookname: Англо-русский словарь Мюллера, 7-я ред., wordcount 46195

似乎是解決了崩潰問題



2010年2月15日 星期一

openSUSE 11.2 KDE4 環境使用 stardict

根據 Release Note:若您選用 KDE 桌面,預設是不啟用 Pulseaudio 支援的
即使您已安裝了 pulseaudio,您還是得在 YaST 的音效中手動啟動
之前曾建議各位安裝 qstardict ,但是 qstardict 不知道是不是太靈敏
常常字還沒標示完,蹦現視窗就跳出來了
所以還是裝了 stardict

其實 stardict 無法啟動的原因,就是 pulseaudio
(所以論壇上也有人建議移除語音模組)
其實只要安裝 pulseaudio 然後啟用它即可(先看完本文在決定是否要這樣做)
在安裝 pulseaudio 時可能會顯示與 patterns-openSUSE-kde4_pure 的樣式衝突
您可以放心移除此 pattern(唯一的後果就是您的 KDE 不純了...)
安裝完後,到 YaST->硬體->音效->其他(右下角)->PulseAudio 組態設定->啟用 PulseAudio 支援
完成後您的 Stardict 即可順利啟動

如果您目前的系統音效沒問題,單為 stardict 啟動了 pulseaudio 音效
這樣會不會有點奇怪呢?
在 kde 控制中心裡,您也可以將所有的音效都用 pulseaudio
但是我有點怕怕的
您可以將測試結果告訴我

或者若您不在乎 stardict 的事件音效(發出'叮叮'的聲音)
那麼,不用安裝 pulseaudio,乖乖的將 espeak 模組移除,就不用變更音效設定了
espeak 模組位置為 /usr/lib(64)/stardict/plugins/stardict_espeak.so
另一個語音模組您也可以一併移除(因為不好聽)
/usr/lib(64)/stardict/plugins/stardict_festival.so
但是要使用真人發音是一個重要的功能
不能使用就太可惜了
預設安裝 stardict 時,會一起安裝 WyabdcRealPeopleTTS 語音模組
雖然聲音有男有女,但是十分清晰
而且每個字都是一個 .wav 檔案

根據 http://wiki.qstardict.ylsoftware.com/Pronouncing_words_with_WyabdcRealPeopleTTS 所提供的方法,
稍做了修改:
1. 若您是從 Education 的套件庫安裝的 stardict-dictionaries-WyabdcRealPeopleTTS 套件
安裝位置是在 /usr/share/stardict/WyabdcRealPeopleTTS
所以將 pronounce-word.sh 修改如下:
#!/bin/bash

TTS_PATH=/usr/share/stardict/WyabdcRealPeopleTTS
WORD=`echo $* | tr A-Z a-z`
for WORD2 in $WORD
do play ${TTS_PATH}/${WORD2:0:1}/${WORD2}.wav
done

2. wiki 中將此 script 放在家目錄中並以 "." 開頭命名為隱藏檔
我覺得把他放在 ~/bin 中,並加上執行權限,並沒有什麼不妥的
$ chmod +x ~/bin/pronounce-word.sh

3. 測試
$ pronounce-word.sh good

/usr/share/stardict/WyabdcRealPeopleTTS/g/good.wav:

File Size: 5.88k Bit Rate: 88.9k
Encoding: Unsigned PCM
Channels: 1 @ 8-bit
Samplerate: 11025Hz
Replaygain: off
Duration: 00:00:00.53

In:100% 00:00:00.53 [00:00:00.00] Out:25.4k [ | ] Hd:3.2 Clip:0
Done.

就可以讀出發音了,您也可以一次讀一整句(字間時距有點太長就是了)
這樣可以單純將此 script 當嘗試發音工具而不一定要啟動 stardict
4. 要在 stardict 中使用,請在 stardict 的偏好設定->音效中
勾選 "使用 TTS(語音合成)程式"
並在指令列中填入
pronounce-word.sh %s

如下圖:
寄件者 openSUSE 11.2

重新開啟 stardict 後就可以使用發音功能了