最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單實(shí)用的文本轉(zhuǎn)語(yǔ)音工具

 更新時(shí)間:2025年10月10日 10:03:18   作者:xcLeigh  
在日常工作和學(xué)習(xí)中,我們經(jīng)常會(huì)遇到需要將文本內(nèi)容轉(zhuǎn)換為語(yǔ)音的場(chǎng)景,比如聽(tīng)小說(shuō)、讀文檔、制作語(yǔ)音提示等,今天就帶大家用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單實(shí)用的文本轉(zhuǎn)語(yǔ)音工具,適合Python初學(xué)者和想快速實(shí)現(xiàn)TTS功能的開(kāi)發(fā)者,需要的朋友可以參考下

引言

本文詳細(xì)介紹了使用Python的pyttsx3庫(kù)開(kāi)發(fā)文本轉(zhuǎn)語(yǔ)音工具的實(shí)戰(zhàn)過(guò)程。pyttsx3作為離線TTS庫(kù),支持Windows、macOS、Linux多系統(tǒng),具有無(wú)需網(wǎng)絡(luò)、響應(yīng)快、可配置參數(shù)等優(yōu)勢(shì)。教程從環(huán)境準(zhǔn)備入手,依次實(shí)現(xiàn)基礎(chǔ)文本朗讀、語(yǔ)速/音量/語(yǔ)音類型調(diào)整、本地.txt文件朗讀、語(yǔ)音保存為WAV文件等功能,最后整合為支持命令行參數(shù)的完整工具,并提供參數(shù)使用說(shuō)明、常見(jiàn)問(wèn)題解決方案及GUI界面開(kāi)發(fā)等擴(kuò)展思路。整體內(nèi)容循序漸進(jìn),代碼解釋清晰,適合Python初學(xué)者掌握pyttsx3核心應(yīng)用并開(kāi)發(fā)本地文本轉(zhuǎn)語(yǔ)音工具。

在日常工作和學(xué)習(xí)中,我們經(jīng)常會(huì)遇到需要將文本內(nèi)容轉(zhuǎn)換為語(yǔ)音的場(chǎng)景,比如聽(tīng)小說(shuō)、讀文檔、制作語(yǔ)音提示等。今天就帶大家用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單實(shí)用的文本轉(zhuǎn)語(yǔ)音工具,核心用到的庫(kù)是pyttsx3。與其他在線TTS(文本轉(zhuǎn)語(yǔ)音)服務(wù)相比,pyttsx3的優(yōu)勢(shì)在于離線運(yùn)行,無(wú)需網(wǎng)絡(luò)連接,響應(yīng)速度快,而且支持多種語(yǔ)音引擎和參數(shù)配置。

本教程將從環(huán)境搭建開(kāi)始,逐步實(shí)現(xiàn)文本朗讀、語(yǔ)音參數(shù)調(diào)整、文本文件轉(zhuǎn)語(yǔ)音等功能,最后整合為一個(gè)完整的工具。代碼解釋清晰,適合Python初學(xué)者和想快速實(shí)現(xiàn)TTS功能的開(kāi)發(fā)者。

一、工具介紹與核心庫(kù)解析

1.1 工具功能概述

我們要開(kāi)發(fā)的文本轉(zhuǎn)語(yǔ)音工具將包含以下核心功能:

  • 實(shí)時(shí)朗讀輸入的文本內(nèi)容
  • 調(diào)整語(yǔ)音的語(yǔ)速(快慢)、音量(大?。?strong>語(yǔ)音類型(男/女/中性)
  • 支持讀取本地文本文件(.txt)并轉(zhuǎn)換為語(yǔ)音
  • 將文本轉(zhuǎn)換后的語(yǔ)音保存為WAV格式文件

1.2 核心庫(kù)pyttsx3詳解

pyttsx3是Python的一個(gè)離線文本轉(zhuǎn)語(yǔ)音庫(kù),它基于不同操作系統(tǒng)的原生語(yǔ)音引擎工作:

  • Windows:使用SAPI5引擎(系統(tǒng)自帶,無(wú)需額外安裝)
  • macOS:使用NSSpeechSynthesizer引擎(系統(tǒng)自帶)
  • Linux:需要安裝espeak引擎(命令:sudo apt-get install espeak

pyttsx3的主要特點(diǎn):

離線運(yùn)行,無(wú)需依賴第三方API;支持多語(yǔ)音引擎切換;可靈活調(diào)整語(yǔ)速、音量、語(yǔ)音;支持語(yǔ)音保存為文件。

二、環(huán)境準(zhǔn)備與依賴安裝

2.1 Python環(huán)境要求

推薦使用Python 3.6及以上版本,確保環(huán)境變量配置正確??梢酝ㄟ^(guò)以下命令檢查Python版本:

python --version  # Windows
python3 --version  # macOS/Linux

2.2 安裝pyttsx3庫(kù)

使用pip命令直接安裝pyttsx3:

pip install pyttsx3

2.3 系統(tǒng)依賴補(bǔ)充(Linux用戶)

Linux系統(tǒng)需要額外安裝espeak引擎,否則運(yùn)行會(huì)報(bào)錯(cuò):

sudo apt-get update
sudo apt-get install espeak

三、核心功能分步實(shí)現(xiàn)

我們將按照“基礎(chǔ)朗讀 → 參數(shù)配置 → 文件處理 → 保存語(yǔ)音”的順序逐步實(shí)現(xiàn)功能,每一步都有完整代碼和解釋。

3.1 基礎(chǔ)功能:文本實(shí)時(shí)朗讀

首先實(shí)現(xiàn)最核心的“文本轉(zhuǎn)語(yǔ)音朗讀”功能,步驟如下:

  1. 導(dǎo)入pyttsx3庫(kù)
  2. 創(chuàng)建TTS引擎實(shí)例
  3. 使用引擎朗讀文本
  4. 等待朗讀完成(避免程序提前退出)

代碼實(shí)現(xiàn):

import pyttsx3

def text_to_speech_basic(text):
    # 創(chuàng)建TTS引擎實(shí)例
    engine = pyttsx3.init()
    
    # 設(shè)置要朗讀的文本
    engine.say(text)
    
    # 等待朗讀完成(必須調(diào)用,否則語(yǔ)音可能無(wú)法輸出)
    engine.runAndWait()

# 測(cè)試:朗讀一段文本
if __name__ == "__main__":
    test_text = "大家好,歡迎學(xué)習(xí)Python文本轉(zhuǎn)語(yǔ)音工具開(kāi)發(fā),我是用pyttsx3實(shí)現(xiàn)的語(yǔ)音。"
    text_to_speech_basic(test_text)

代碼解釋

  • pyttsx3.init():初始化TTS引擎,根據(jù)操作系統(tǒng)自動(dòng)選擇對(duì)應(yīng)的語(yǔ)音引擎。
  • engine.say(text):將文本添加到引擎的朗讀隊(duì)列中(并非立即朗讀)。
  • engine.runAndWait():執(zhí)行朗讀隊(duì)列中的任務(wù),直到所有文本朗讀完成。

3.2 進(jìn)階功能:調(diào)整語(yǔ)音參數(shù)(語(yǔ)速、音量、語(yǔ)音)

pyttsx3支持靈活調(diào)整語(yǔ)音參數(shù),讓輸出的語(yǔ)音更符合需求。我們主要調(diào)整三個(gè)參數(shù):

3.2.1 調(diào)整語(yǔ)速

語(yǔ)速通過(guò)engine.setProperty('rate', 值)設(shè)置,默認(rèn)值約為200(單詞/分鐘),值越大語(yǔ)速越快。

3.2.2 調(diào)整音量

音量通過(guò)engine.setProperty('volume', 值)設(shè)置,范圍為0.0~1.0,默認(rèn)值約為1.0。

3.2.3 切換語(yǔ)音類型(男/女)

不同操作系統(tǒng)提供的語(yǔ)音包不同,我們可以通過(guò)engine.getProperty('voices')獲取所有可用語(yǔ)音,再通過(guò)engine.setProperty('voice', 語(yǔ)音id)切換。

完整參數(shù)配置代碼:

import pyttsx3

def text_to_speech_advanced(text, rate=200, volume=1.0, voice_id=0):
    engine = pyttsx3.init()
    
    # 1. 調(diào)整語(yǔ)速
    engine.setProperty('rate', rate)  # 建議范圍:100~300
    
    # 2. 調(diào)整音量
    engine.setProperty('volume', volume)  # 范圍:0.0~1.0
    
    # 3. 切換語(yǔ)音類型
    voices = engine.getProperty('voices')  # 獲取所有可用語(yǔ)音
    # 打印所有語(yǔ)音信息(方便選擇)
    print("可用語(yǔ)音列表:")
    for i, voice in enumerate(voices):
        print(f"語(yǔ)音ID: {i}, 名稱: {voice.name}, 語(yǔ)言: {voice.language}")
    engine.setProperty('voice', voices[voice_id].id)  # 設(shè)置指定語(yǔ)音
    
    # 朗讀文本
    engine.say(text)
    engine.runAndWait()

# 測(cè)試:調(diào)整參數(shù)朗讀
if __name__ == "__main__":
    test_text = "我是調(diào)整后的語(yǔ)音,語(yǔ)速稍慢,音量適中,使用指定的語(yǔ)音類型。"
    # 語(yǔ)速150,音量0.8,語(yǔ)音ID1(根據(jù)實(shí)際可用語(yǔ)音選擇)
    text_to_speech_advanced(test_text, rate=150, volume=0.8, voice_id=1)

注意:語(yǔ)音ID需要根據(jù)實(shí)際運(yùn)行時(shí)打印的“可用語(yǔ)音列表”選擇。例如Windows系統(tǒng)可能有“David”(英文男音)、“Zira”(英文女音),中文語(yǔ)音需要提前安裝對(duì)應(yīng)的語(yǔ)音包。

3.3 擴(kuò)展功能1:讀取本地文本文件并朗讀

實(shí)現(xiàn)讀取本地.txt文件,將文件內(nèi)容轉(zhuǎn)換為語(yǔ)音。步驟:

  1. 接收文件路徑參數(shù)
  2. 打開(kāi)并讀取文件內(nèi)容(注意編碼格式,推薦UTF-8)
  3. 調(diào)用TTS引擎朗讀文件內(nèi)容

代碼實(shí)現(xiàn):

import pyttsx3

def read_text_file(file_path, rate=200, volume=1.0, voice_id=0):
    try:
        # 打開(kāi)并讀取文本文件(指定UTF-8編碼避免中文亂碼)
        with open(file_path, 'r', encoding='utf-8') as f:
            file_content = f.read()
        
        if not file_content:
            print("文件內(nèi)容為空!")
            return
        
        # 調(diào)用進(jìn)階朗讀函數(shù)
        engine = pyttsx3.init()
        engine.setProperty('rate', rate)
        engine.setProperty('volume', volume)
        voices = engine.getProperty('voices')
        engine.setProperty('voice', voices[voice_id].id)
        
        print("開(kāi)始朗讀文件內(nèi)容...")
        engine.say(file_content)
        engine.runAndWait()
        print("朗讀完成!")
    
    except FileNotFoundError:
        print(f"錯(cuò)誤:文件 {file_path} 不存在!")
    except Exception as e:
        print(f"讀取文件失?。簕str(e)}")

# 測(cè)試:朗讀本地test.txt文件
if __name__ == "__main__":
    file_path = "test.txt"  # 替換為你的文本文件路徑
    read_text_file(file_path, rate=160, voice_id=0)

3.4 擴(kuò)展功能2:將語(yǔ)音保存為WAV文件

pyttsx3支持將文本轉(zhuǎn)換后的語(yǔ)音保存為WAV格式文件,使用engine.save_to_file(text, 文件名)實(shí)現(xiàn)。

代碼實(shí)現(xiàn):

import pyttsx3

def text_to_wav(text, output_file="output.wav", rate=200, volume=1.0, voice_id=0):
    engine = pyttsx3.init()
    
    # 配置語(yǔ)音參數(shù)
    engine.setProperty('rate', rate)
    engine.setProperty('volume', volume)
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[voice_id].id)
    
    # 將文本保存為WAV文件
    engine.save_to_file(text, output_file)
    
    # 等待保存完成
    engine.runAndWait()
    print(f"語(yǔ)音已保存到:{output_file}")

# 測(cè)試:將文本保存為WAV文件
if __name__ == "__main__":
    test_text = "這是一段保存為WAV文件的語(yǔ)音,你可以在輸出目錄找到它。"
    text_to_wav(test_text, output_file="my_voice.wav", rate=180)

注意:pyttsx3默認(rèn)只支持保存為WAV格式,如果需要MP3格式,可以使用pydub庫(kù)將WAV轉(zhuǎn)換為MP3(需額外安裝ffmpeg)。

四、完整工具整合與使用說(shuō)明

將以上功能整合為一個(gè)完整的工具,支持命令行參數(shù)輸入,方便靈活使用。

4.1 完整代碼

import pyttsx3
import argparse

def init_engine(rate=200, volume=1.0, voice_id=0):
    """初始化TTS引擎并配置參數(shù)"""
    engine = pyttsx3.init()
    engine.setProperty('rate', rate)
    engine.setProperty('volume', volume)
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[voice_id].id)
    return engine

def text_speak(text, engine):
    """朗讀文本"""
    engine.say(text)
    engine.runAndWait()

def file_speak(file_path, engine):
    """朗讀文本文件"""
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
        if not content:
            print("文件內(nèi)容為空!")
            return
        print("開(kāi)始朗讀文件...")
        engine.say(content)
        engine.runAndWait()
        print("朗讀完成!")
    except Exception as e:
        print(f"文件處理失?。簕str(e)}")

def text_to_wav_file(text, output_file, engine):
    """文本轉(zhuǎn)WAV文件"""
    engine.save_to_file(text, output_file)
    engine.runAndWait()
    print(f"WAV文件已保存:{output_file}")

def main():
    # 解析命令行參數(shù)
    parser = argparse.ArgumentParser(description="Python文本轉(zhuǎn)語(yǔ)音工具(pyttsx3)")
    parser.add_argument('--text', type=str, help='要朗讀的文本內(nèi)容')
    parser.add_argument('--file', type=str, help='要朗讀的文本文件路徑(.txt)')
    parser.add_argument('--output', type=str, help='保存語(yǔ)音的WAV文件路徑')
    parser.add_argument('--rate', type=int, default=200, help='語(yǔ)速(默認(rèn)200,范圍100-300)')
    parser.add_argument('--volume', type=float, default=1.0, help='音量(默認(rèn)1.0,范圍0.0-1.0)')
    parser.add_argument('--voice', type=int, default=0, help='語(yǔ)音ID(默認(rèn)0,可先運(yùn)行查看可用ID)')
    
    args = parser.parse_args()
    
    # 初始化引擎
    engine = init_engine(rate=args.rate, volume=args.volume, voice_id=args.voice)
    
    # 根據(jù)參數(shù)執(zhí)行對(duì)應(yīng)功能
    if args.text:
        if args.output:
            text_to_wav_file(args.text, args.output, engine)
        else:
            text_speak(args.text, engine)
    elif args.file:
        file_speak(args.file, engine)
    else:
        print("請(qǐng)指定--text(文本)或--file(文件路徑)參數(shù)!")
        parser.print_help()

if __name__ == "__main__":
    main()

4.2 運(yùn)行效果

python .\simple_wav_tool.py --text "測(cè)試" --output test.wav

4.2 工具使用說(shuō)明

將完整代碼保存為text_to_speech.py,通過(guò)命令行運(yùn)行,支持以下參數(shù):

參數(shù)說(shuō)明示例
–text要朗讀的文本內(nèi)容python text_to_speech.py --text “你好,Python”
–file文本文件路徑(.txt)python text_to_speech.py --file test.txt
–output保存WAV文件路徑python text_to_speech.py --text “測(cè)試” --output test.wav
–rate語(yǔ)速(100-300)python text_to_speech.py --text “測(cè)試” --rate 150
–volume音量(0.0-1.0)python text_to_speech.py --text “測(cè)試” --volume 0.8
–voice語(yǔ)音ID(先運(yùn)行查看可用ID)python text_to_speech.py --text “測(cè)試” --voice 1

五、常見(jiàn)問(wèn)題與解決方案

5.1 運(yùn)行報(bào)錯(cuò)“No module named ‘pyttsx3’”

解決方案:確保已正確安裝pyttsx3,重新執(zhí)行pip install pyttsx3。如果是Python3,可能需要用pip3 install pyttsx3。

5.2 Linux系統(tǒng)報(bào)錯(cuò)“Could not find libespeak.so”

解決方案:安裝espeak引擎,執(zhí)行命令sudo apt-get install espeak。

5.3 中文朗讀亂碼或無(wú)法朗讀中文

解決方案:

  • 讀取文件時(shí)指定編碼為UTF-8(如代碼中open(file_path, 'r', encoding='utf-8'))。
  • 確保系統(tǒng)已安裝中文語(yǔ)音包(Windows:控制面板→語(yǔ)音識(shí)別→文本到語(yǔ)音;macOS:系統(tǒng)設(shè)置→輔助功能→語(yǔ)音)。

5.4 無(wú)法保存為MP3格式

解決方案:pyttsx3不直接支持MP3,可先用本工具保存為WAV,再用pydub轉(zhuǎn)換為MP3:

# 安裝依賴
pip install pydub
# 安裝ffmpeg(Windows需添加環(huán)境變量,Linux:sudo apt-get install ffmpeg)

from pydub import AudioSegment

# WAV轉(zhuǎn)MP3
wav_file = "output.wav"
mp3_file = "output.mp3"
audio = AudioSegment.from_wav(wav_file)
audio.export(mp3_file, format="mp3")

六、工具擴(kuò)展思路

如果想進(jìn)一步增強(qiáng)工具功能,可以考慮以下方向:

  • 開(kāi)發(fā)GUI界面(使用Tkinter、PyQt等),讓非技術(shù)用戶也能方便使用。
  • 支持批量處理文本文件,一次性將多個(gè).txt文件轉(zhuǎn)為語(yǔ)音。
  • 添加語(yǔ)音情感調(diào)整(部分語(yǔ)音引擎支持,如微軟Azure TTS,但需在線)。
  • 整合剪貼板監(jiān)聽(tīng),自動(dòng)朗讀剪貼板中的文本。

七、總結(jié)

本教程詳細(xì)介紹了如何用Python的pyttsx3庫(kù)開(kāi)發(fā)文本轉(zhuǎn)語(yǔ)音工具,從基礎(chǔ)的文本朗讀到進(jìn)階的參數(shù)配置、文件處理、語(yǔ)音保存,再到完整工具的整合與使用。pyttsx3作為離線TTS庫(kù),在響應(yīng)速度和隱私保護(hù)上有明顯優(yōu)勢(shì),適合開(kāi)發(fā)本地文本轉(zhuǎn)語(yǔ)音應(yīng)用。

希望通過(guò)本教程,你能掌握pyttsx3的核心用法,并能根據(jù)自己的需求擴(kuò)展工具功能。

以上就是利用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單實(shí)用的文本轉(zhuǎn)語(yǔ)音工具的詳細(xì)內(nèi)容,更多關(guān)于Python文本轉(zhuǎn)語(yǔ)音工具的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python主動(dòng)拋出異常raise的方法實(shí)現(xiàn)

    python主動(dòng)拋出異常raise的方法實(shí)現(xiàn)

    本文主要介紹了python主動(dòng)拋出異常raise的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • Python四大金剛之集合詳解

    Python四大金剛之集合詳解

    這篇文章主要介紹了Python的集合,小編覺(jué)得這篇文章寫的還不錯(cuò),需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • Python如何使用EasyOCR工具識(shí)別圖像文本

    Python如何使用EasyOCR工具識(shí)別圖像文本

    EasyOCR?是?PyTorch?實(shí)現(xiàn)的一個(gè)光學(xué)字符識(shí)別?(OCR)?工具,這篇文章主要介紹了Python如何使用EasyOCR工具識(shí)別圖像文本,需要的朋友可以參考下
    2023-04-04
  • 記錄Django開(kāi)發(fā)心得

    記錄Django開(kāi)發(fā)心得

    學(xué)習(xí)使用Django也有一個(gè)月了,也該整理整理了,給自己,也給大家分享一下哈(再次鄙視國(guó)內(nèi)的IT技術(shù)文檔/問(wèn)答環(huán)境,抄抄抄,你們TM自己寫點(diǎn)不行啊?。。。。?當(dāng)然我剛學(xué)Django/Python,也歡迎指點(diǎn)錯(cuò)誤的地方,
    2014-07-07
  • Python多進(jìn)程fork()函數(shù)詳解

    Python多進(jìn)程fork()函數(shù)詳解

    今天小編就為大家分享一篇關(guān)于Python多進(jìn)程fork()函數(shù)詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙向循環(huán)鏈表操作的示例

    python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙向循環(huán)鏈表操作的示例

    這篇文章主要介紹了python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙向循環(huán)鏈表操作的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python 拼接文件路徑的方法

    python 拼接文件路徑的方法

    今天小編就為大家分享一篇python 拼接文件路徑的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python實(shí)現(xiàn)簡(jiǎn)單的tcp 文件下載

    python實(shí)現(xiàn)簡(jiǎn)單的tcp 文件下載

    這篇文章主要介紹了python如何實(shí)現(xiàn)簡(jiǎn)單的tcp文件下載,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • 深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例

    深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例

    這篇文章主要介紹了深度學(xué)習(xí)TextRNN的tensorflow1.14實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 深入理解python協(xié)程

    深入理解python協(xié)程

    協(xié)程又稱為微線程,協(xié)程是一種用戶態(tài)的輕量級(jí)線程,它是實(shí)現(xiàn)多任務(wù)的另一種方式,只不過(guò)是比線程更小的執(zhí)行單元。因?yàn)樗詭PU的上下文,這樣只要在合適的時(shí)機(jī),我們可以把一個(gè)協(xié)程切換到另一個(gè)協(xié)程
    2021-06-06

最新評(píng)論

南阳市| 涡阳县| 尉氏县| 沁阳市| 勃利县| 肇庆市| 达州市| 武安市| 吉首市| 分宜县| 馆陶县| 顺义区| 靖州| 聂荣县| 贵阳市| 栾城县| 京山县| 龙泉市| 施甸县| 东城区| 沙洋县| 鸡东县| 宁安市| 天台县| 富锦市| 观塘区| 黄骅市| 铜山县| 保定市| 格尔木市| 武强县| 科技| 文山县| 葵青区| 长泰县| 鸡东县| 马公市| 蕉岭县| 原阳县| 漯河市| 景泰县|