Oracle Text 索引文檔時所使用的主要邏輯步驟如下:

⑴數(shù)據(jù)存儲邏輯搜索表的所有行,并讀取列中的數(shù)據(jù)。通常,這只是列數(shù)據(jù),但有些數(shù)據(jù)存儲使用列數(shù)據(jù)作為文檔數(shù)據(jù)的指針。例如,URL_DATASTORE 將列數(shù)據(jù)作為 URL 使用。

⑵過濾器提取文檔數(shù)據(jù)并將其轉(zhuǎn)換為文本表示方式。存儲二進制文檔 (如 Word 或 Acrobat 文件) 時需要這樣做。過濾器的輸出不必是純文本格式 -- 它可以是 XML 或 HTML 之類的文本格式。

⑶分段器提取過濾器的輸出信息,并將其轉(zhuǎn)換為純文本。包括 XML 和 HTML 在內(nèi)的不同文本格式有不同的分段器。轉(zhuǎn)換為純文本涉及檢測重要文檔段標記、移去不可見的信息和文本重新格式化。

⑷詞法分析器提取分段器中的純文本,并將其拆分為不連續(xù)的標記。既存在空白字符分隔語言使用的詞法分析器,也存在分段復雜的亞洲語言使用的專門詞法分析器。

⑸索引引擎提取詞法分析器中的所有標記、文檔段在分段器中的偏移量以及被稱為非索引字的低信息含量字列表,并構(gòu)建反向索引。倒排索引存儲標記和含有這些標記的文檔。

Oracle text造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應商 報價日期
SPM現(xiàn)澆內(nèi)置保溫結(jié)構(gòu)一體系 品種:無機復合保溫板;密度(kg/m3):30; 查看價格 查看價格

元立

m2 13% 山西元立新型建材有限公司
地坪漆體系 品種:防水板;說明:詳見報價單;規(guī)格:30kg; 查看價格 查看價格

三棵樹

m2 13% 河北尚科新材料科技有限公司
氟碳體系專用底漆 22㎏ 查看價格 查看價格

立邦

13% 廊坊立邦涂料有限公司天津分公司
氟碳體系專用底漆 品種:內(nèi)墻底漆;類型:底漆;容量:20kg/桶;規(guī)格型號:QA267; 查看價格 查看價格

立邦

13% 重慶求穩(wěn)貿(mào)易有限公司
質(zhì)感體系專用底漆黑色 品種:外墻專用底漆;容量:18L/桶;說明:質(zhì)感; 查看價格 查看價格

立邦

L 13% 西寧綠意環(huán)境裝飾工程有限公司
NBW現(xiàn)澆混凝土內(nèi)置保溫體系 品種:擠塑板;燃燒等級:B1級;規(guī)格(mm):1220×3600;廠家型號:3/100×3/100×3/100×80XPS;厚度(mm):8 查看價格 查看價格

德嘉麗

m2 13% 河南省德嘉麗科技開發(fā)有限公司
NCW免拆復合保溫模板體系 品種:擠塑板;燃燒等級:B1級;規(guī)格(mm):1220×3600;廠家型號:3/100×70XPS;厚度(mm):70;容重(kg/m3): 查看價格 查看價格

德嘉麗

m2 13% 河南省德嘉麗科技開發(fā)有限公司
NBW現(xiàn)澆混凝土內(nèi)置保溫體系 品種:聚苯板;燃燒等級:B1級;規(guī)格(mm):1220×3600;廠家型號:3/100×3/100×3/100×60EPS;厚度(mm):6 查看價格 查看價格

德嘉麗

m2 13% 河南省德嘉麗科技開發(fā)有限公司
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
自發(fā)電一焊機 305A 查看價格 查看價格

臺班 韶關(guān)市2010年8月信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 汕頭市2011年3季度信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 廣州市2010年3季度信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 汕頭市2010年2季度信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 廣州市2010年2季度信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 廣州市2010年1季度信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 汕頭市2009年3季度信息價
二氧化碳氣保護焊機 電流250A 查看價格 查看價格

臺班 廣州市2007年4季度信息價
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應商 報價地區(qū) 最新報價時間
產(chǎn)業(yè)生態(tài)體系 視頻 產(chǎn)業(yè)生態(tài)體系|360秒 3 查看價格 深圳泰爾智能視控股份有限公司 全國   2020-07-06
綠道游憩體系規(guī)劃 視頻 綠道游憩體系規(guī)劃|130秒 3 查看價格 深圳泰爾智能視控股份有限公司 全國   2020-07-06
短視頻直播推廣體系 打造立短視頻直播推廣體系,通過短視頻+網(wǎng)紅模式,編寫產(chǎn)業(yè)場景宣傳劇本,設計內(nèi)容豐富短視頻系列,利用當前熱點較高短視頻平臺或者直播平臺,分享主要品種養(yǎng)殖管理驗,宣傳區(qū)域品牌;探索直播帶貨模式,提升品牌知名度和出貨量.|1項 1 查看價格 江蘇瑞豐信息技術(shù)股份有限公司 全國   2021-07-26
產(chǎn)業(yè)生態(tài)體系 光電沙盤程序 定制|2套 3 查看價格 深圳泰爾智能視控股份有限公司 全國   2020-07-06
產(chǎn)業(yè)生態(tài)體系 鏡頭 9D-FLS067DZ|1個 3 查看價格 廣州智影騰達科技有限公司 全國   2020-07-06
產(chǎn)業(yè)生態(tài)體系 音響 PS-8|2個 3 查看價格 廣州市保倫電子有限公司 全國   2020-07-06
產(chǎn)業(yè)生態(tài)體系 光電視頻 定制|120秒 3 查看價格 深圳泰爾智能視控股份有限公司 全國   2020-07-06
產(chǎn)業(yè)生態(tài)體系 球幕 九度定制|1套 3 查看價格 深圳泰爾智能視控股份有限公司 全國   2020-07-06

Oracle一直致力于全文檢索技術(shù)的研究,當Oracle9i Rlease2發(fā)布之時,Oracle數(shù)據(jù)庫的全文檢索技術(shù)已經(jīng)非常完美,Oracle Text使Oracle9i具備了強大的文本檢索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的新名稱,在Oracle8/8i中它被稱作Oracle interMedia Text,在Oracle8以前它的名稱是Oracle ConText Cartridge。使用Oracle9i和Oracle Text,可以方便而有效地利用標準的SQL工具來構(gòu)建基于文本的新的開發(fā)工具或?qū)ΜF(xiàn)有應用程序進行擴展。應用程序開發(fā)人員可以在任何使用文本的Oracle數(shù)據(jù)庫應用程序中充分利用Oracle Text搜索,應用范圍可以是現(xiàn)有應用程序中可搜索的注釋字段,也可是實現(xiàn)涉及多種文檔格式和復雜搜索標準的大型文檔管理系統(tǒng)。Oracle Text支持Oracle數(shù)據(jù)庫所支持的大多數(shù)語言的基本全文搜索功能。本文將介紹如何使用Oracle9i的全文檢索技術(shù)來為自己的應用提供一個優(yōu)秀的解決方案。

這里先給出一個簡單示例說利用Oracle Text實現(xiàn)全文檢索的方法與步驟,在后面在進行具體的說明。Orcale9i提供了Oracle Text Manager可以簡化許多工作,所有在Oracle Text Manager中完成的工作,都可以在通過PL/SQL來實現(xiàn)。要使用Oracle Text,必須具有CTXAPP角色或者是CTXSYS用戶。Oracle Text為系統(tǒng)管理員提供CTXSYS用戶,為應用程序開發(fā)人員提供CTXAPP角色。

CTXSYS用戶可執(zhí)行以下任務:啟動Oracle Text服務器,執(zhí)行CTXAPP角色的所有任務。

具有CTXAPP角色的用戶可執(zhí)行以下任務:創(chuàng)建索引,管理 Oracle Text 數(shù)據(jù)字典,包括創(chuàng)建和刪除首選項,進行Oracle Text 查詢,使用 Oracle Text PL/SQL程序包。

使用Oracle Text的步驟:

⑴創(chuàng)建表來保存某些文檔。該示例使用一個主關(guān)鍵字列來標識每個文檔,使用一個小的VARCHAR2列來保存每個文檔。

CREATE TABLE docs (id NUMBER PRIMARY KEY,text VARCHAR2(80));

⑵將兩個示例文檔置入該表:

INSERT INTO docs VALUES (1,'the first doc');

INSERT INTO docs VALUES (2,'the second doc');

COMMIT;

⑶使用Oracle Text Manager來創(chuàng)建和修改首選項,首選項將與索引相關(guān)聯(lián)。

⑷使用Oracle Text Manager創(chuàng)建文本索引。另外,可以輸入以下使用默認首選項的 SQL 語句:

CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT;

⑸使用 CONTAINS 函數(shù),發(fā)出基于內(nèi)容的文檔查詢。例如:

SELECT id FROM docs WHERE CONTAINS (text,'first') > 0;

這將在文本列包含單詞 first (即文檔1) 的 docs 中查找所有行。語句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函數(shù)的布爾返回值。

以上只是一個簡單的示例,旨在給出使用Oracle Text建立全文索引的完整步驟,歸納起來如下:

⑴建表并裝載文本(包含帶有需要檢索的文本字段)

⑵配置索引

⑶建立索引

⑷發(fā)出查詢

⑸索引維護:同步與優(yōu)化(將在后面介紹)

Oracle textOracle的體系架構(gòu)常見問題

  • NaCl是什么

    氯化鈉,無色立方結(jié)晶或白色結(jié)晶。溶于水、,微溶于乙醇、液氨。不溶于鹽酸。在空氣中微有潮解性。用于制造純堿和燒堿及其他化工產(chǎn)品,礦石冶煉。食品工業(yè)和漁業(yè)用于鹽腌,還可用作調(diào)味料的原料和精制食鹽。 ...

  • spectacle spectacles 意思分別是什么

    spectacle [簡明英漢詞典] [5spektEkl] n.觀覽物, 展覽物, 公開展示, 奇觀, 景象, 光景, (a pair of ~s)眼鏡 spectacles [簡明英漢詞典] n....

  • 跪求關(guān)于oracle安全性的資料!!!

    我這有一篇關(guān)于SQL Server 2005 與Oracle 10g的比較的文章,是微軟工程師寫的,相信會對你很有幫助。 =======================================...

要實現(xiàn)文本的全文檢索首先必須把正確的文本加載到數(shù)據(jù)庫表中,默認的建立索引行為要求將文檔裝載在文本列中,盡管可以用其它方式 (包括文件系統(tǒng)和 URL 形式)存儲文檔 (在"數(shù)據(jù)存儲"選項進行設置)。默認情況下,系統(tǒng)應該將文檔裝載在文本列中。文本列可以是VARCHAR2、CLOB、BLOB、CHAR或BFILE。注意,只有在將Oracle7系統(tǒng)移植到Oracle8的情況下才支持用LONG和LONG RAW 這兩個相反的列類型存儲文本。不能為列類型NCLOB、DATE和NUMBER建立索引。

關(guān)于文檔格式,因為系統(tǒng)能為包括HTML、PDF、Microsoft Word和純文本在內(nèi)的大多數(shù)文檔格式建立索引,可以將其中的任何文檔類型裝載到文本列中(在"過濾器"選項中設置)。有關(guān)所支持的文檔格式的詳細信息,可以參閱Oracle Text User's Guide and Reference 中的附錄"Supported Filter Formats"。

裝載方法主要有以下幾種:

⑴SQL INSERT 語句

⑵ctxload 可執(zhí)行文件

⑶SQL*Loader

⑷從 BFILE 中裝載 LOB 的 DBMS_LOB.LOADFROMFILE() PL/SQL 過程

⑸Oracle Call Interface

文本裝入文本列后,就可以創(chuàng)建Oracle Text索引。文檔以許多不同方案、格式和語言存儲。因此,每個 Oracle Text 索引有許多需要設置的選項,以針對特定情況配置索引。創(chuàng)建索引時,Oracle Text可使用若干個默認值,但在大多數(shù)情況下要求用戶通過指定首選項來配置索引。

每個索引的許多選項組成功能組,稱為"類&quo

每個類集中體現(xiàn)配置的某一方面,可以認為這些類就是與文檔數(shù)據(jù)庫有關(guān)的一些問題。例如:數(shù)據(jù)存儲、過濾器、詞法分析器、相關(guān)詞表、存儲等。

每個類具有許多預定義的行為,稱之為對象。每個對象是類問題可能具有的答案,并且大多數(shù)對象都包含有屬性。通過屬性來定制對象,從而使對索引的配置更加多變以適應于不同的應用。

⑴存儲(Storage)類

存儲類指定構(gòu)成Oracle Text索引的數(shù)據(jù)庫表和索引的表空間參數(shù)和創(chuàng)建參數(shù)。它僅有一個基本對象:BASIC_STORAGE,其屬性包括:I_Index_Clause、I_Table_Clause、K_Table_Clause、N_Table_Clause、P_Table_Clause、R_Table_Clause。

⑵數(shù)據(jù)存儲(Datastore)類

數(shù)據(jù)存儲:關(guān)于列中存儲文本的位置和其他信息。默認情況下,文本直接存儲到列中,表中的每行都表示一個單獨的完整文檔。其他數(shù)據(jù)存儲位置包括存儲在單獨文件中或以其 URL 標識的 Web 頁上。七個基本對象包括:Default_Datastore、Detail_Datastore、Direct_Datastore、File_Datastore、Multi_Column_Datastore 、URL_Datastore、User_Datastore,。

⑶文檔段組(Section Group)類

文檔段組是用于指定一組文檔段的對象。必須先定義文檔段,然后才能使用索引通過 WITHIN 運算符在文檔段內(nèi)進行查詢。文檔段定義為文檔段組的一部分。包含七個基本對象:AUTO_SECTION_GROUP、BASIC_SECTION_GROUP、HTML_SECTION_GROUP、NEWS_SECTION_GROUP、NULL_SECTION_GROUP、XML_SECTION_GROUP、PATH_SECTION_GROUP。

⑷相關(guān)詞表(Wordlist)類

相關(guān)詞表標識用于索引的詞干和模糊匹配查詢選項的語言,只有一個基本對象BASIC_WORDLIST,其屬性有:Fuzzy_Match、Fuzzy_Numresults、Fuzzy_Score、Stemmer、Substring_Index、Wildcard_Maxterms、Prefix_Index、Prefix_Max_Length、Prefix_Min_Length。

⑸索引集(Index Set)

索引集是一個或多個Oracle 索引 (不是Oracle Text索引) 的集合,用于創(chuàng)建 CTXCAT類型的Oracle Text索引,只有一個基本對象BASIC_INDEX_SET。

⑹詞法分析器(Lexer)類

詞法分析器類標識文本使用的語言,還確定在文本中如何標識標記。默認的詞法分析器是英語或其他西歐語言,用空格、標準標點和非字母數(shù)字字符標識標記,同時禁用大小寫。包含8個基本對象:BASIC_LEXER、CHINESE_LEXER、CHINESE_VGRAM_LEXER、JAPANESE_LEXER、JAPANESE_VGRAM_LEXER、KOREAN_LEXER、KOREAN__MORPH_ LEXER、MULTI_LEXER。

⑺過濾器(Filter)類

過濾器確定如何過濾文本以建立索引??梢允褂眠^濾器對文字處理器處理的文檔、格式化的文檔、純文本和 HTML 文檔建立索引,包括5個基本對象:CHARSET_FILTER、INSO_FILTER INSO、NULL_FILTER、PROCEDURE_FILTER、USER_FILTER。

⑻非索引字表(Stoplist)類

非索引字表類是用以指定一組不編入索引的單詞 (稱為非索引字)。有兩個基本對象:BASIC_STOPLIST (一種語言中的所有非索引字) 、 MULTI_STOPLIST (包含多種語言中的非索引字的多語言非索引字表)。

建立了索引,就可以使用 SELECT 語句中的 CONTAINS 運算符發(fā)出文本查詢。使用 CONTAINS 可以進行兩種查詢:單詞查詢和ABOUT查詢。

詞查詢示例

詞查詢是對輸入到 CONTAINS 運算符中單引號間的精確單詞或短語的查詢。在以下示例中,我們將查找文本列中包含 oracle 一詞的所有文檔。每行的分值由使用標簽 1 的 SCORE 運算符選定:

SELECT SCORE⑴ title from news WHERE CONTAINS(text,'oracle',1) > 0;

在查詢表達式中,可以使用 AND 和 OR 等文本運算符來獲取不同結(jié)果。還可以將結(jié)構(gòu)性謂詞添加到 WHERE 子句中??梢允褂?count(*)、CTX_QUERY.COUNT_HITS 或 CTX_QUERY.EXPLAIN 來計算查詢的命中 (匹配) 數(shù)目。

ABOUT查詢示例

在所有語言中,ABOUT查詢增加了某查詢所返回的相關(guān)文檔的數(shù)目。在英語中,ABOUT 查詢可以使用索引的主題詞組件,該組件在默認情況下創(chuàng)建。這樣,運算符將根據(jù)查詢的概念返回文檔,而不是僅依據(jù)所指定的精確單詞或短語。例如,以下查詢將查找文本列中關(guān)于主題 politics 的所有文檔,而不是僅包含 politics 一詞的文檔:

SELECT SCORE⑴ title from news WHERE CONTAINS(text,'about(politics)',1) > 0;

通常,通過使用Oracle Text查詢應用程序,用戶可查看查詢所返回的文檔。用戶從命中列表中選擇一個文檔,然后應用程序以某種形式顯示該文檔。通過Oracle Text,可以用不同的方式再現(xiàn)文檔。例如,可以通過突出顯示查詢詞來顯示文檔。突出顯示的查詢詞可以是相關(guān)詞查詢中的詞,也可以是英文 ABOUT 查詢中的主題詞。

以下是關(guān)于輸出效果和用于每個輸出效果的過程的信息:

突出顯示的文檔,純文本格式版本(CTX_DOC.MARKUP)

突出顯示的文檔,HTML版本(CTX_DOC.MARKUP)

突出顯示純文本格式版本的偏移量信息(CTX_DOC.HIGHLIGHT)

突出顯示HTML 版本的偏移量信息(CTX_DOC.HIGHLIGHT)

純文本格式版本,無突出顯示(CTX_DOC.FILTER)

HTML版本文檔,無突出顯示(CTX_DOC.FILTER)

索引建好后,如果表中的數(shù)據(jù)發(fā)生變化,比如增加或修改了記錄,怎么辦?由于對表所發(fā)生的任何DML語句,都不會自動修改索引,因此,必須定時同步(sync)和優(yōu)化(optimize)索引,以正確反映數(shù)據(jù)的變化。

在索引建好后,可以在該用戶下查到Oracle自動產(chǎn)生了以下幾個表:(假設索引名為myindex):

DR$myindex$I,DR$myindex$K,DR$myindex$R,DR$myindex$N

其中以I表最重要,可以查詢一下該表:

select token_text,token_count from DR$ myindex $I where rownum<=20;

查詢結(jié)果在此省略??梢钥吹?,該表中保存的其實就是Oracle 分析你的文檔后,生成的term記錄

在這里,包括term出現(xiàn)的位置、次數(shù)、hash值等。當文檔的內(nèi)容改變后,可以想見這個I表的內(nèi)容也應該相應改變,才能保證Oracle在做全文檢索時正確檢索到內(nèi)容(因為所謂全文檢索,其實核心就是查詢這個表)。那么如何維護該表的內(nèi)容,不能每次數(shù)據(jù)改變都重新建立索引,這就要用到sync 和 optimize了。

同步(sync):將新的term 保存到I表;

優(yōu)化(optimize):清除I表的垃圾,主要是將已經(jīng)被刪除的term從I表刪除。

Oracle提供了一個所謂的ctx server來做這個同步和優(yōu)化的工作,只需要在后臺運行這個進程,它會監(jiān)視數(shù)據(jù)的變化,及時進行同步。另外,也可以用以下的job來完成(該job要建在和表同一個用戶下):

create or replace procedure sync

is

begin

execute immediate

'alter index myindex rebuild online' ||

' parameters (''sync'')' ;

execute immediate

'alter index myindex rebuild online' ||

' parameters (''optimize full maxtime unlimited'')' ;

end sync;

/

Set ServerOutput on

declare

v_job number;

begin

Dbms_Job.Submit

(

job => v_job,

what => 'sync;',

next_date => sysdate,/* default */

interval => 'sysdate + 1/720' /* = 1 day / (24 hrs * 30 min) = 2 mins */

);

Dbms_Job.Run (v_job);

Dbms_Output.Put_Line ('Submitted as job # ' || to_char (v_job));

end;

/

job的SYSDATE + (1/720)是指每隔2分鐘同步一次。具體的時間間隔,可以根據(jù)自己的應用的需要而定。

Oracle textOracle的體系架構(gòu)文獻

打造中國行業(yè)ERP工程——Oracle拓寬應用市場 打造中國行業(yè)ERP工程——Oracle拓寬應用市場

格式:pdf

大?。?span id="u0smu0s" class="single-tag-height">318KB

頁數(shù): 1頁

評分: 4.4

記者湯銘 辭舊迎新之際,從Oracle公司傳來兩個消息。12月19日,中國印鈔造幣總公司與Oracle中國公司在北京舉行合作簽約儀式,正式啟動造幣總公司ERP三期工程。同時中國海洋石油有限公司與Oracle中國公司也在日前合作簽約實施能源行業(yè)ERP解決方案。 印鈔造幣是國家的特種行業(yè),特種行業(yè)的每一舉一動都牽動國家經(jīng)濟的脈搏。在國際化及產(chǎn)業(yè)結(jié)構(gòu)調(diào)整成為必然趨勢之時,特種行業(yè)如何而對新環(huán)境?如何在多元化的領域達到實現(xiàn)專業(yè)化經(jīng)

立即下載
Oracle金融行業(yè)解決方案  Oracle GRC—實現(xiàn)企業(yè)與銀行共贏 Oracle金融行業(yè)解決方案 Oracle GRC—實現(xiàn)企業(yè)與銀行共贏

格式:pdf

大小:318KB

頁數(shù): 1頁

評分: 4.7

隨著中國銀行業(yè)逐漸與國際接軌和國內(nèi)銀行的陸續(xù)上市,公司治理、風險管理和法規(guī)遵從(以下簡稱GRC)已成為國內(nèi)銀行必須遵循和解決的問題,銀監(jiān)會要求國內(nèi)銀行在2010年必須要開始實施巴塞爾新協(xié)議,2013年為最后的期限。這就意味著國內(nèi)銀行只有僅僅3年的準備時間,國內(nèi)銀行將面臨著全方位地提高風險管理能力和法規(guī)遵從能力。

立即下載

CTI技術(shù)使電信和計算機相互融合,克服了傳統(tǒng)電信和計算機服務相對單一的缺點,將兩者完美結(jié)合了起來。其應用領域非常廣泛,任何需要語音、數(shù)據(jù)通信,特別是那些希望把計算機網(wǎng)與通信網(wǎng)結(jié)合起來完成語音數(shù)據(jù)信息交換的系統(tǒng)都會用到CTI技術(shù)。

TTS即語音合成技術(shù)(Text To Speech),它涉及聲學、語言學、數(shù)學信號處理技術(shù)、多媒體技術(shù)等多個學科技術(shù),是中文信息處理領域的一項前沿技術(shù),實現(xiàn)把計算機中任意出現(xiàn)的文字轉(zhuǎn)換成自然流暢的語音輸出。

TTS在CTI系統(tǒng)中可以應用在IVR(交互式語音應答)服務器上,以提供語音交互式平臺,為用戶電話來訪提供語音提示,引導用戶選擇服務內(nèi)容和輸入電話事務所需的數(shù)據(jù),并接受用戶在電話撥號鍵盤上輸入的信息,實現(xiàn)對計算機數(shù)據(jù)庫等信息資料的交互式訪問。

在IVR中應用TTS可以自動將文本信息轉(zhuǎn)換為語音文件,或者實時地將文本信息合成語音并通過電話發(fā)布。實現(xiàn)文本與語音自動雙向轉(zhuǎn)換,以達到人與系統(tǒng)的自動交互,隨時隨地為客戶服務。維護人員不必再人工錄音,只須將電子文檔引入系統(tǒng)中,系統(tǒng)可以自動將電子文檔轉(zhuǎn)換為語音信息播放給客戶。數(shù)據(jù)庫中存放的大量數(shù)據(jù),無需事先進行錄音,能夠隨時根據(jù)查詢條件查出并合成語音進行播報,從而大大減少了座席人員的工作負擔。

那么應如何將TTS功能附加到CTI應用中呢?某些比較先進的交換平臺,已經(jīng)在交換機的內(nèi)部實現(xiàn)了TTS的功能,并作為標準接口的一部分對外提供,業(yè)務開發(fā)商只需要簡單的調(diào)用他們即可以在業(yè)務中使用該功能。

對于未實現(xiàn)TTS功能的PBX,就需要業(yè)務開發(fā)商自己去選擇合適的平臺,在此基礎上進行二次開發(fā),即調(diào)用所選TTS平臺提供的標準接口,實現(xiàn)語音合成功能。

目前CTI已經(jīng)成為全球發(fā)展最為迅猛的產(chǎn)業(yè)之一,每年以50%的速度增長,CTI如同計算機產(chǎn)業(yè)一樣是一個金字塔形的產(chǎn)業(yè)鏈,從上到下會以至少20倍的幅度增值。TTS作為一種誘人的新技術(shù),如果能很好的嵌入到增值業(yè)務的應用中去,必將形成一個更好的應用前景。

杭州音通軟件有限公司是由國家教育部和浙江省人民政府聯(lián)辦并依托浙江大學而成立的高新技術(shù)公司,音通公司主要致力于計算機語音技術(shù)的研發(fā)并逐步開拓語音識別、語音流媒體傳輸?shù)绕渌Z音領域的研究。其核心技術(shù)(Intone_TTS)是具有自主知識產(chǎn)權(quán)的中文語音合成技術(shù),在由浙江省科技廳組織的鑒定中被專家一致鑒定為國內(nèi)領先地位,并已申請多項國家專利。

Intone_TTS是一套把文本信息轉(zhuǎn)換為語音信息的開發(fā)工具包,為系統(tǒng)集成商、軟件開發(fā)商提供了完備的接口函數(shù)和編程示例,使用戶能夠靈活的進行調(diào)用,并集成到其它應用系統(tǒng)中。接口需要語音合成運行庫的支持,適合多種開發(fā)環(huán)境。開發(fā)者可以根據(jù)具體的應用場合進行選擇。

它能夠?qū)λ械臐h字、英文、阿拉伯數(shù)字進行語音合成;

支持繁體字及多音字的編輯;

合成效果:自然、平滑;

規(guī)范的函數(shù)調(diào)用接口,同時支持微軟SAPI的調(diào)用;支持同步調(diào)用和異步調(diào)用方式;

支持PCM Wave,uLaw/aLaw Wave,ADPCM,Dialogic Vox等多種語音格式;

支持GB2312碼(簡體中文)、BIG5碼(繁體)、UNICODE碼;

支持多路通道同時合成;

支持Dialogic、東進、三匯等主流語音板卡;

TTS就是Text To Speech,文本轉(zhuǎn)語音,文本朗讀,差不多是一個意思。在語音系統(tǒng)開發(fā)中經(jīng)常要用到。

目前市場上的TTS很多,實現(xiàn)方式也各式各樣,有的很昂貴,如科大訊飛,據(jù)說當初得到863計劃的資助,有很高的技術(shù);有的相對便宜,如捷通華聲, InfoTalk;也有免費的,如微軟的TTS產(chǎn)品。

相對于ASR(Automatic Speech Recognition,自動語音識別)來說,實現(xiàn)一個TTS產(chǎn)品所需要的技術(shù)難度不算大,在我看來也就是個力氣活。

要是讓我們來做一個能夠把漢語句子朗讀出來的TTS,我們會怎么做呢?

有一種最簡單的TTS,就是把每個字都念出來,你會問,豈不要錄制6千多個漢字的語音?幸運的是,漢語的音節(jié)很少,很多同音字。我們最多只是需要錄制: 聲母數(shù)×韻母數(shù)×4,(其實不是每個讀音都有4聲),這樣算來,最多只需要錄制幾百個語音就可以了。

在合成的時候需要一張漢字對應拼音的對照表,漢字拼音輸入法也依賴這張表,可以在網(wǎng)上找到,不過通常沒有4聲音調(diào),大不了自己加上,呵呵,要不怎么說是力氣活呢。

這樣做出來的TTS效果也還可以,特別是朗讀一些沒有特別含義的如姓名,家庭住址,股票代碼等漢語句子,聽起來足夠清晰。這要歸功于我們偉大的母語通常都是單音節(jié),從古代的時候開始,每個漢字就有一個詞,表達一個意思。而且漢字不同于英語,英語里面很多連讀,音調(diào)節(jié)奏變化很大,漢字就簡單多了。

當然,你仍然要處理一些細節(jié),比如多音字,把"銀行"讀成"yin xing"就不對了;再比如,標點符號的處理,數(shù)字、字母的處理,這些問題對于寫過很多程序的你,當然不難了。

國內(nèi)的一些語音板卡帶的TTS,不管是賣錢的還是免費的,大體都是這樣做出來的,也就是這樣的效果。

如果要把TTS的效果弄好一點,再來點力氣活,把基本的詞錄制成語音,如常見的兩字詞,四字成語等,再做個詞庫和語音庫的對照表,每次需要合成時到詞庫里面找。這樣以詞為單位,比以字為單位,效果自然是好多了。當然,這里面還是有個技術(shù),就是分詞的技術(shù),要把復雜的句子斷成合理的詞序列,也有點技術(shù)。這也要怪新文化那些先驅(qū)們,當初倡導白話文,引進西文的橫排格式、標點符號的時候,沒有引進西文中的空格分詞。不過即使分詞算法那么不高效,不那么準確,也問題不大,如前面所說,漢字是單音節(jié)詞,把聲音合起來,大體上不會有錯。

當然,科大訊飛的力氣活又干的多了些,據(jù)說已經(jīng)進化到以常用句子為單位來錄音了,大家可以想像,這要耗費更多的力氣,換來更好的效果。

至于增加一些銜接處的"詞料",弄一些修飾性的音調(diào),我認為是無關(guān)緊要的,對整體的效果改進不是太大。

市面上商品化TTS一般還支持粵語,請個粵語播音員錄音,把上面的力氣活重做一遍就是了。

再說句題外話,很多人覺得錄音最好找電臺、電視臺的播音員,其實找個你周圍的女同事來錄制,只要吐字清晰就可以了。在某種情況下,尋常聲音比字正腔圓的新聞聯(lián)播來得可愛。

再來說說文本的標識,對于復雜文本,某些內(nèi)容程序沒有辦法處理,需要標識出來。比如,單純的數(shù)字"128",是應該念成"一百二十八"還是"一二八"?解決辦法通常是加入XML標注,如微軟的TTS:"<context ID = "number_cardinal">128</context>"念成"一百二十八","<context ID = "number_digit">128</context>"將念成"一二八"。TTS引擎可以去解釋這些標注。遺憾的是,語音XML標注并沒有形成大家都完全認可的標準,基本上是各自一套。

再說說TTS應用編程,微軟的TTS編程接口叫SAPI,是COM接口,開發(fā)起來還是有點麻煩,還好MSDN的網(wǎng)站上資料很全面。微軟的TTS雖然免費,但其中文角色目前是個男聲,聲音略嫌混濁,感覺不爽。

國內(nèi)一般的廠家提供API調(diào)用接口,相對比較簡單,可以方便地嵌入應用程序中去。

商品化的TTS還有個并發(fā)許可限制,就是限制同時合成的并發(fā)線程數(shù),我覺得這個限制用處不大。無論哪種TTS,都可以將文本文件轉(zhuǎn)換成語音文件,供語音卡播放。大部分應用句子比較短小,一般不會超過100個漢字,合成的時間是非常短的,弄個線程專門負責合成,其它應用向該線程請求就是了,萬一句子很長,把它分解成多個短句子就是了,播放的速度總是比合成的速度慢。

也很多應用是脫機合成,沒有實時性要求,就更不必買多個許可了。

更多情況下,我們甚至沒有必要購買TTS,比如語音開發(fā)中常見的費用催繳,撥通后播放:"尊敬的客戶,您本月的費用是:212元",前面部分對所有客戶都一樣,錄一個語音文件就是了,而數(shù)字的合成是很簡單的,你只要錄制好10個數(shù)字語音,再加上十,百,千,萬,再加上金錢的單位"元"。

包括中文語音處理和語音合成,利用中文韻律等相關(guān)知識對中文語句進行分詞、詞性判斷、注音、數(shù)字符號轉(zhuǎn)換,語音合成通過查詢中文語音庫得到語音。目前中文TTS系統(tǒng),比較著名的有:IBM,Microsoft,F(xiàn)ujitsu,科大訊飛,捷通華聲等研究的系統(tǒng)。目前比較關(guān)鍵的就是中文韻律處理、符號數(shù)字、多音字、構(gòu)詞方面有較多的問題,需要不斷研究,使得中文語音合成的自然化程度較高。

Oracle text相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識
  • 相關(guān)專欄