全部產品
Search
文件中心

Alibaba Cloud Model Studio:使用 CosyVoice 語音合成 LaTeX 方程式

更新時間:Dec 24, 2025

在有聲讀物、線上教育等情境中,將包含複雜數學公式的文本轉換為流暢、準確的語音是一大挑戰。CosyVoice 語音合成服務支援解析文本中嵌入的公式,並將其以符合人類閱讀習慣的方式朗讀出來,顯著提升了數學、物理等學科內容的聽覺體驗。

使用方法

將文本中的公式通過特定分隔字元包裹,然後調用語音合成 API 即可。

  1. 使用分隔字元標記公式

    為了讓引擎識別並解析公式,您需要使用以下任意一種分隔字元將公式內容包裹起來:

    使用不同分隔字元不影響合成效果,選擇其中任意一個即可。

    • $...$

    • $$...$$

    • \(...\)

    • \[...\]

    樣本:

    這是一道一元二次方程的求根公式:$x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$,請仔細計算。
  2. 調用 API 發起合成請求

    在調用語音合成 API 時,將包含標記的文本作為輸入。請注意,在 JSON 格式的請求體或程式設計語言的字串中,反斜線 \ 是一個逸出字元,因此需要寫成 \\

    調用樣本(以Python為例):

    # coding=utf-8
    
    import dashscope
    from dashscope.audio.tts_v2 import *
    
    # 若沒有將API Key配置到環境變數中,需將your-api-key替換為自己的API Key
    # dashscope.api_key = "your-api-key"
    
    # 模型
    model = "cosyvoice-v3-flash"
    # 音色
    #    不同模型版本需要使用對應版本的音色:
    #        cosyvoice-v3-flash/cosyvoice-v3-plus:使用longanyang等音色
    #        cosyvoice-v2:使用longxiaochun_v2等音色
    voice = "longanyang"
    
    # 執行個體化SpeechSynthesizer,並在構造方法中傳入模型(model)、音色(voice)等請求參數
    synthesizer = SpeechSynthesizer(model=model, voice=voice)
    # 發送待合成文本,擷取二進位音頻
    audio = synthesizer.call("這是一道一元二次方程的求根公式:$x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}$,請仔細計算。")
    # 首次發送文本時需建立 WebSocket 串連,因此首包延遲會包含串連建立的耗時
    print('[Metric] requestId為:{},首包延遲為:{}毫秒'.format(
        synthesizer.get_last_request_id(),
        synthesizer.get_first_package_delay()))
    
    # 將音頻儲存至本地
    with open('output.mp3', 'wb') as f:
        f.write(audio)

支援的標籤與符號

下表列出了當前支援的標籤與符號。

基礎數學

標籤或符號

作用

公式內容樣本

待合成文本樣本

讀法

+

2 + 3 = 5

$2 + 3 = 5$

二加三等於五

-

3 - 2 = 1

$3 - 2 = 1$

三減二等於一

\pm

加減

\pm 1 \pm 2

$\pm 1\pm 2$

正負一加減二

正負

\times

2 \times 3 = 6

$2 \times 3 = 6$

二乘三等於六

×

2 × 3 = 6

$$2 × 3 = 6$$

*

2 * 3 = 6

\(2 * 3 = 6\)

\div

6\div2=3

\[6\div2=3\]

六除二等於三

÷

6÷2=3

$6÷2=3$

/

6/2=3

$6/2=3$

=

等於

3+5=8

$3+5=8$

三加五等於八

<

小於

1< 2

$1< 2$

一小於二

小於等於

3≤5

$3≤5$

三小於等於五

<=

3<=5

$3<=5$

\leq

3\leq5

$3\leq 5$

\le

3\le5

$3\le 5$

\leqq

3\leqq5

$3\leqq 5$

\leqslant

3\leqslant5

$3\leqslant 5$

>

大於

2>1

$2>1$

二大於一

大於等於

5≥3

$5≥3$

五大於等於三

>=

5>=3

$5>=3$

\geq

5\geq3

$5\geq 3$

\ge

5\ge3

$5\ge 3$

\geqq

5\geqq3

$5\geqq 3$

\geqslant

5\geqslant3

$5\geqslant 3$

\frac

分數

2\frac3

$\frac {2}{3}$

三分之二

^

次方

2^1

$2^{1}$

二的一次方

\sqrt

開根

\sqrt{9} = 3

$\sqrt {9} = 3$

根號下九等於三

\sqrt[3]{8} = 2

$\sqrt[3]{8} = 2$

三次根號下八等於二

\%

百分比

5\%

$5\%$

百分之五

|

絕對值

∣3∣=3

$|3| =3$

絕對值三的絕對值等於三

\vert

3\vert=3

$\vert 3\vert =3$

絕對值三絕對值等於三

\lg

對數

lg {10}

$\lg {10}$

log十

\log

對數

\log{5}

$\log{5}$

log五

\ln

自然對數

\lnX

$ln {10}$

LN十

!

階乘

5!

$5!$

五的階乘

()

括弧

(2+1)

$(2+1)$

括弧內二加一

\{ \}

$\{2+1\}$

大括弧二加一反大括弧

特殊數學符號

標籤或符號

轉換

公式內容樣本

待合成文本樣本

讀法

\alpha

alpha

\alpha

$\alpha$

α

 

\Alpha

\Alpha

$\Alpha$

\beta

beta

\beta

$\beta$

β

 

\Beta

\Beta

$\Beta$

\gamma

gamma

\gamma

$\gamma$

γ

 

\Gamma

\Gamma

$\Gamma$

\delta

delta

\delta

$\delta$

Δ

 

\Delta

\Delta

$\Delta$

\infty

無窮大(中)

\infty

$\infty$

無窮大

 

infty (英)

$∞$

幾何

標籤或符號

作用

公式內容樣本

公式輸入樣本

讀法

\pi

\pi=3.14159

$\pi =3.14159$

派等於三點一四一五九

\sin (sine

三角函數

\sin (sine30^\circ=1\frac2

$\sin 30^\circ =\frac {1}{2}$

sine三十度等於二分之一

\cos (cosine

$\cos 30^\circ =\frac {\sqrt {2}}{2}$

cosine三十度等於二分之根號下二

\tan (tangent

$\tan 30^\circ =\frac {\sin 30^\circ}{\cos 30^\circ}$

tangent三十度等於cosine三十度分之sine三十度

\csc (cosecant

$\csc A$

cosecant A

\sec (secant

$\sec A$

secant A

\cot (cotangent

$\cot A$

cotangent A

\angle

\angle AB

$\angle AB$

角A B

∠AB

$∠AB$

^\circ

∠AB = 30^\circ

$∠AB = 30^\circ$

角A B 等於三十度

\odot

\odot

$\odot$

\overset\frown

\overset\frown {BC}

$\overset\frown {BC}$

弧BC

\rm{Rt}

直角

\because \rm{Rt}\triangle ABC

$\because \rm{Rt}\triangle ABC$

因為直角三角形ABC

\mathrm{Rt}

\therefore AB \perp BC

$\therefore AB \perp BC$

所以AB垂直於BC

\triangle

三角形

\triangleABC

$\triangle ABC$

三角形ABC

△ABC

$△ABC$

\parallelogram

平行四邊形

\parallelogramABCD

$\parallelogram ABCD$

平行四邊形ABCD

\perp

垂直

AB \perp BC

$AB \perp BC$

A B 垂直於 B C

\bot

AB \bot BC

$AB \bot BC$

AB ⊥ BC

$AB ⊥ BC$

\parallel

平行

A\parallel B

$A\parallel B$

A平行於B

\equalparallel

平行且相等於

A\equalparallel B

$A\equalparallel B$

A平行且相等於B

\cong

全等

△ABC\cong△DEF

$△ABC\cong△DEF$

三角形ABC全等於三角形DEF

條件

標籤或符號

作用

公式內容樣本

公式輸入樣本

讀法

\implies

推出

\implies 1+1=2

$\implies 1+1=2$

推出一加一等於二

\iff

等價

p\iffq

$p\iffq$

p等價q

\because 

因為

\because a = b \therefore b=a

$\because a = b \therefore b=a$

因為a等於b所以b等於a

\therefore 

所以

單位

單位需要使用 \unit\quantity\mathit\mathrm 或 \rm 標籤進行包裹。例如:\unit{cm}

標籤或符號

讀法

公式內容樣本

公式輸入樣本

讀法

mm

毫米

5\quantity{mm}

$5\quantity{mm}$

五毫米

cm

厘米

5\quantity{cm}

$5\quantity{cm}$

五厘米

dm

分米

5\quantity{dm}

$5\quantity{dm}$

五分米

m

5\quantity{m}

$5\quantity{m}$

五米

km

千米

5\quantity{km}

$5\quantity{km}$

五千米

g

5\quantity{g}

$5\quantity{g}$

五克

kg

千克

5\quantity{kg}

$5\quantity{kg}$

五千克

t

5\quantity{t}

$5\quantity{t}$

五噸

mm^2

平方毫米

5\quantity{mm^2}

$5\quantity{mm^2}$

五平方毫米

cm^2

平方厘米

5\quantity{cm^2}

$5\quantity{cm^2}$

五平方厘米

dm^2

平方分米

5\quantity{dm^2}

$5\quantity{dm^2}$

五平方分米

m^2

平方米

5\quantity{m^2}

$5\quantity{m^2}$

五平方米

km^2

平方千米

5\quantity{km^2}

$5\quantity{km^2}$

五平方千米

mm^3

立方毫米

5\quantity{mm^3}

$5\quantity{mm^3}$

五立方毫米

cm^3

立方厘米

5\quantity{cm^3}

$5\quantity{cm^3}$

五立方厘米

dm^3

立方分米

5\quantity{dm^3}

$5\quantity{dm^3}$

五立方分米

m^3

立方米

5\quantity{m^3}

$5\quantity{m^3}$

五立方米

km^3

立方千米

5\quantity{km^3}

$5\quantity{km^3}$

五立方千米

ml

毫升

5\quantity{ml}

$5\quantity{ml}$

五毫升

s

5\quantity{s}

$5\quantity{s}$

五秒

min

分鐘

5\quantity{min}

$5\quantity{min}$

五分

h

小時

5\quantity{h}

$5\quantity{h}$

五小時

km/h

千米每小時

5\quantity{km/h}

$5\quantity{km/h}$

五千米每小時

g/l

克每升

5\quantity{g/l}

$5\quantity{g/l}$

五克每升

使用限制

  • 語種限制:僅支援中文。

  • 內容限制:

    • 公式內容必須符合支援的標籤與符號中的要求。

    • 不支援 Markdown 格式的數學公式(如 ```math ... ```)。

    • 分隔字元內只應包含公式,否則可能導致語音合成結果不準確。

  • 模型限制:僅支援cosyvoice-v2cosyvoice-v3-flashcosyvoice-v3-plus模型。

常見問題

Q:為什麼我輸入的公式沒有被朗讀出來?

請按以下步驟排查:

  1. 檢查分隔字元:確認公式已使用 $...$$$...$$\(...\) 或 \[...\] 正確包裹。

  2. 檢查公式複雜度:確認公式不包含當前不支援的標籤與符號。請參考使用限制支援的標籤與符號

  3. 檢查逸出字元:在通過 API 發送請求時,確認公式中的 \ 已被正確轉義為 \\

Q:在代碼中如何正確處理包含 \ 的字串?

在大多數程式設計語言(如 Python, Java, JavaScript)的字串字面量和 JSON 資料中,反斜線 \ 是特殊逸出字元。因此,您需要將其自身轉義,即用 \\ 來表示一個 \。例如,\frac 在代碼中應寫作 \\frac