從零到一體驗 Qwen-TTS:用四川話合成語音的全流程技術實錄

請添加圖片描述
今天很高興看到Qwen-TTS開源。試一試四川方言(大概是成都版)效果如何。本人無法判斷、有興趣的伙伴可以幫忙聽一聽。

四川方言TTS

"胖娃胖嘟嘟,騎馬上成都,成都又好耍。胖娃騎白馬,白馬跳得高。胖娃耍關刀,關刀耍得圓。胖娃吃湯圓。"
"他一輩子的使命就是不停地爬喲,爬到大海頭上去,不管有好多遠!"
"今天天氣巴適得很,我們一起去吃火鍋嘛!那個味道簡直不擺了,安逸得很!"
"老鄉,你從哪兒來嘛?要不要一起擺龍門陣?"

引言

近年來,AI 語音合成(Text-to-Speech, TTS)技術飛速發展,已經從"能聽懂"進化到"能聽出情感、方言和個性"。阿里云 Qwen-TTS(通義千問語音合成)是國內首批支持多種中文方言(包括四川話、上海話、京片子)和中英雙語的高質量 TTS 模型之一。本文將以四川話為例,帶你從 API Key 獲取、環境配置、代碼實現、到常見問題排查,完整體驗 Qwen-TTS 的技術魅力。


一、Qwen-TTS 簡介與技術亮點

Qwen-TTS 是阿里云 DashScope 平臺推出的高自然度、強表現力的語音合成模型。目前已支持四川話、上海話、京片子等,未來將擴展更多方言和語言7 種中英雙語聲音,適合多場景應用。自動根據文本調整語調、節奏、情感色彩,媲美真人朗讀。通過 DashScope API 快速集成,支持 Python、RESTful 等多種調用方式。在 SeedTTS-Eval 等權威基準上達到人類水平的自然度和相似度。

官方博客與樣例:https://qwenlm.github.io/blog/qwen-tts/


二、DashScope API Key 獲取全流程

1. 注冊并登錄阿里云 DashScope

  • 訪問 DashScope 官網
  • 使用阿里云賬號注冊/登錄(支持手機號、郵箱、企業賬號等)

2. 進入 API Key 管理頁面

  • 登錄后,點擊右上角頭像,進入"控制臺"或"API Key 管理"
  • 找到"API Key"或"密鑰管理"入口

請添加圖片描述

3. 創建并獲取 API Key

  • 點擊"創建 API Key"或"生成新密鑰"
  • 通過手機/郵箱二次驗證
  • 復制生成的 API Key(注意:只顯示一次,務必保存

API Key 格式示例:

sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

注意:必須以 sk- 開頭,否則不是 DashScope 的 TTS API Key(如 LTAI... 開頭的是阿里云 Access Key,不能用于 Qwen-TTS)。

4. 安全保存 API Key

  • 建議保存到密碼管理器或安全筆記
  • 切勿公開或上傳到代碼倉庫

三、環境配置與依賴安裝

1. 克隆或下載項目

假設你已獲得本文配套的 Qwen-TTS 四川話演示項目(或參考下方代碼結構自行創建):

csdn/
└── qwen-tts/├── qwen_tts_sichuan_demo.py├── requirements.txt├── test_setup.py├── config.py├── env_example.txt└── output/   # 運行后自動生成

2. 安裝依賴

進入 qwen-tts 目錄,安裝依賴:

cd qwen-tts
pip install -r requirements.txt

依賴說明:

  • dashscope:阿里云 DashScope Python SDK
  • requests:網絡請求庫
  • pygame:音頻播放(可選)
  • python-dotenv:支持 .env 文件加載 API Key

3. 配置 API Key

推薦方式:使用 .env 文件

  1. 復制示例文件并編輯
    cp env_example.txt .env
    nano .env
    
  2. 填寫你的 API Key(必須以 sk- 開頭):
    DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

可選方式:環境變量

export DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

四、代碼實現與運行流程

1. 主要代碼結構說明

qwen_tts_sichuan_demo.py 主要實現了以下功能:

  • 自動加載 .env 文件或環境變量中的 API Key
  • 支持多條四川話示例文本合成
  • 自動創建輸出目錄,保存音頻文件
  • 可選實時播放合成音頻
  • 詳細的錯誤處理與用戶提示

核心代碼片段:

from dotenv import load_dotenv
import osdef _load_env_file(self):# 優先加載腳本目錄下的 .envscript_dir = Path(__file__).parentenv_path = script_dir / ".env"if env_path.exists():load_dotenv(env_path)# 也可向上查找# ...def _get_api_key(self):self._load_env_file()api_key = os.getenv("DASHSCOPE_API_KEY")if not api_key or not api_key.startswith("sk-"):raise EnvironmentError("請正確配置 DashScope API Key(以 sk- 開頭)")return api_key
            response = dashscope.audio.qwen_tts.SpeechSynthesizer.call(model=self.model,api_key=self.api_key,text=text,voice=self.voice,)
        try:pygame.mixer.init()pygame.mixer.music.load(audio_path)pygame.mixer.music.play()# Wait for audio to finishwhile pygame.mixer.music.get_busy():time.sleep(0.1)except Exception as e:print(f"? Audio playback failed: {e}")finally:pygame.mixer.quit()
            filename = f"sichuan_sample_{i:02d}.wav"audio_path = self.synthesize_speech(sample['text'], filename)

2. 運行演示腳本

推薦先運行測試腳本:

python test_setup.py
  • 檢查依賴、API Key、網絡、目錄等
  • 若有問題會給出詳細修復建議
🔑 Testing API key...
? API key found using environment variable: DASHSCOPE_API_KEYKey starts with: LTAI5tJU...
?? API key doesn't start with 'sk-'. This might not be a valid DashScope API key.📁 Testing directories...
? Output directory ready: /Users/zlu/projects/csdn/qwen-tts/output🌐 Testing network connectivity...
? Network connectivity OK📊 Test Summary
========================================
Imports         ? PASS
Environment File ? PASS
API Key         ? PASS
Directories     ? PASS
Network         ? PASSResults: 5/5 tests passed
🎉 All tests passed! You're ready to run the demo.

正式運行四川話合成演示:

python qwen_tts_sichuan_demo.py
📄 Loading environment from: /Users/zlu/projects/csdn/qwen-tts/.env
? API key loaded successfully (starts with: sk-c4021...)
🎭 Qwen-TTS Sichuan Dialect Demo
==================================================
Model: qwen-tts-latest
Voice: Sunny (Sichuan dialect)
Output directory: output📝 Sample 1: Traditional Sichuan Rhyme
Description: A traditional Sichuan children's rhyme about a chubby child
Text: 胖娃胖嘟嘟,騎馬上成都,成都又好耍。胖娃騎白馬,白馬跳得高。胖娃耍關刀,關刀耍得圓。胖娃吃湯圓。
----------------------------------------
🎤 Synthesizing: 胖娃胖嘟嘟,騎馬上成都,成都又好耍。胖娃騎白馬,白馬跳得高。胖娃耍關刀,關刀耍得圓。胖娃吃湯圓。...
📥 Downloading audio from: http://dashscope-result-wlcb.oss-cn-wulanchabu.aliyuncs.com/1d/2d/20250701/b02dd599/8df4ea6c-b22a-41ab-8b9e-2e659b3590e8.wav?Expires=1751419905&OSSAccessKeyId=LTAI5tKPD3TMqf2Lna1fASuh&Signature=%2FPm1kfFEwfDmmdDsEeriPIMdJO4%3D
? Audio saved to: output/sichuan_sample_01.wav
🎵 Play audio? (y/n): y
🔊 Playing audio...
? Audio playback completed

3. 交互與輸出

  • 程序會依次合成多條四川話文本(如童謠、日常對話、方言故事等)
  • 合成音頻保存在 output/ 目錄
  • 若安裝了 pygame,可選擇實時播放音頻
  • 運行結束后會輸出所有生成的音頻文件路徑

五、常見問題與排查

1. API Key 格式錯誤

報錯示例:

?? Warning: API key doesn't start with 'sk-'. This might not be a valid DashScope API key.
? Demo failed: Invalid API key

解決方法:

  • 確認 API Key 來源于 DashScope 控制臺
  • 必須以 sk- 開頭,不能用阿里云 Access Key

2. 找不到 .env 文件

現象:

  • 明明 .envqwen-tts/,但程序提示找不到

原因:

  • 你可能在項目根目錄運行腳本(python qwen-tts/qwen_tts_sichuan_demo.py),此時當前目錄是 csdn/,而不是 qwen-tts/
  • .env 只會在當前目錄或父目錄查找

解決方法:

  • 推薦將 .env 放到項目根目錄(csdn/
  • 或者進入 qwen-tts/ 目錄再運行腳本:
    cd qwen-tts
    python qwen_tts_sichuan_demo.py
    

3. 輸出目錄不存在

報錯示例:

? Demo failed: [Errno 2] No such file or directory: 'qwen-tts/output'

解決方法:

  • 手動創建輸出目錄:
    mkdir -p qwen-tts/output
    
  • 或確保代碼自動創建目錄(本項目已支持)

4. 網絡或依賴問題

  • 檢查網絡是否可訪問外網
  • 確認已安裝所有依賴(pip install -r requirements.txt

六、進階玩法與最佳實踐

1. 擴展更多方言與自定義文本

  • 可在 config.py 或主腳本中添加更多四川話/其他方言文本
  • 支持自定義輸出文件名、批量合成

2. 集成到 Web/移動應用

  • Qwen-TTS 支持 RESTful API,可與 Flask、FastAPI、Django 等后端集成
  • 也可用于小程序、App 的語音播報

3. 性能與費用

  • DashScope 提供免費額度,超出后按量計費
  • 建議先在免費額度內測試,量大可申請企業套餐

4. 安全與合規

  • API Key 切勿上傳到公開倉庫
  • 可用 .gitignore 忽略 .env 文件

七、Qwen-TTS 技術原理簡述

  • 大規模語音數據訓練:覆蓋多方言、多場景
  • Transformer 架構:支持高質量韻律與情感建模
  • 多說話人/多風格:可選不同性別、年齡、方言的聲音
  • 自動韻律調整:根據文本內容智能斷句、重音、語速
  • API 設計:支持文本、說話人、風格等多參數定制

八、結語與展望

Qwen-TTS 讓高質量中文方言語音合成變得觸手可及。無論你是開發者、AI 研究者,還是方言文化愛好者,都可以通過簡單的 API 和開源代碼,體驗到四川話、上海話、京片子等地道方言的數字化魅力。未來,隨著模型能力和數據的不斷提升,Qwen-TTS 有望支持更多方言、情感和應用場景,助力中文語音 AI 生態繁榮。


參考鏈接

  • Qwen-TTS 官方博客
  • DashScope 控制臺
  • DashScope 文檔
  • Qwen GitHub
  • SeedTTS-Eval Benchmark

歡迎留言交流你的體驗與問題,也歡迎 PR 豐富更多方言和應用場景!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87076.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87076.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87076.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php數據導出pdf文件

一.導出pdf文件,首先要安裝相關的類庫文件,我用的是dompdf類庫。 1.安裝類庫文件: composer require dompdf/dompdf 2.引入類庫文件到你的控制器中,創建方法: public function generatePdf(){//你需要打印的查詢內容…

Beam2.61.0版本消費kafka重復問題排查

1.問題出現過程 在測試環境測試flink的job的任務消費kafka的情況,通過往job任務發送一條消息,然后flink web ui上消費出現了兩條。然后通過重啟JobManager和TaskManager后,任務從checkpoint恢復后就會出現重復消費。當任務不從checkpoint恢復…

關于 java:9. Java 網絡編程

一、Socket 編程 Socket(套接字)是網絡通信的端點,是對 TCP/IP 協議的編程抽象,用于實現兩臺主機間的數據交換。 通俗來說: 可以把 Socket 理解為“電話插口”,插上后客戶端和服務端才能“通話”。 Sock…

主流零信任安全產品深度介紹

騰訊 iOA 零信任安全管理系統 功能:提供零信任接入、終端安全、數據防泄密等十余種功能模塊。可實現基于身份的動態訪問控制、終端安全一體化防護、數據防泄密體系等。核心優勢:基于騰訊內部千萬級終端實踐打磨,沉淀豐富場景方案&#xff0c…

LabVIEW裝配車體撓度無線測量

針對軌道交通車輛裝配過程中車體撓度測量需求,基于LabVIEW開發無線快速測量系統,采用品牌硬件構建高精度數據采集與傳輸架構。系統通過 ZigBee 無線傳輸技術、高精度模數轉換模塊及激光位移傳感器,實現裝配車體撓度的實時、自動、非接觸測量&…

java微服務-linux單機CPU接近100%優化

你這個場景: 4核16G 機器 同時運行了 8個 Spring Boot 微服務,每個 JAR 文件 100多 MB 導致 CPU 接近100% 確實是一個常見但資源緊繃的部署情境。下面是分層的優化建議,包括 JVM、系統、服務架構等多個方面,幫助你 降 CPU、穩…

MySQL表的約束和基本查詢

一.表的約束 1.1空屬性 當我們填寫問卷的時候,經常會有不允許為空的問題,比如電話號,姓名等等.而mysql上我們可以在創建表的時候,如果想要某一列不允許為空,可以加上not null來加以限制: mysql> create table myclass( -> class_name varchar(20) not null, -> cla…

VBA代碼解決方案第二十六講:如何新建EXCEL工作簿文件

《VBA代碼解決方案》(版權10028096)這套教程是我最早推出的教程,目前已經是第三版修訂了。這套教程定位于入門后的提高,在學習這套教程過程中,側重點是要理解及掌握我的“積木編程”思想。要靈活運用教程中的實例像搭積木一樣把自己喜歡的代碼…

【unity游戲開發——網絡】套接字Socket的重要API

注意:考慮到熱更新的內容比較多,我將熱更新的內容分開,并全部整合放在【unity游戲開發——網絡】專欄里,感興趣的小伙伴可以前往逐一查看學習。 文章目錄 1、Socket套接字的作用2、Socket類型與創建3、核心屬性速查表4、關鍵方法指…

計算機網絡(二)應用層HTTP協議

目錄 1、HTTP概念 ?編輯2、工作流程?? 3、HTTP vs HTTPS?? 4、HTTP請求特征總結? 5、持久性和非持久性連接 非持久連接(HTTP/1.0)?? ??持久連接(HTTP/1.1)?? 1、HTTP概念 HTTP(HyperText Transfer …

c# IO密集型與CPU密集型任務詳解,以及在異步編程中的使用示例

文章目錄 IO密集型與CPU密集型任務詳解(C#示例)一、基本概念1. IO密集型任務2. CPU密集型任務 二、C#示例1. IO密集型示例1.1 文件操作異步示例1.2 網絡請求異步示例1.3 數據庫操作異步示例 2. CPU密集型示例2.1 基本CPU密集型異步處理2.2 并行處理CPU密…

用lines_gauss的width屬性提取缺陷

自己做了一個圖,這個圖放在資源里了 結果圖是這樣(這里只結算了窄區) 代碼和備注如下 read_image (Image11, C:/Users/Administrator/Desktop/分享/15/11.png) rgb1_to_gray (Image11, GrayImage) invert_image (GrayImage, ImageInvert) thr…

從0到100:房產中介小程序開發筆記(中)

背景調研 為中介帶來諸多優勢,能借助它打造專屬小程序,方便及時更新核實租賃信息,確保信息準確無誤,像房屋的大致地址、租金數額、租賃條件、房源優缺點等關鍵信息都能清晰呈現。還可上傳房屋拍攝照片,這樣用戶能提前…

【AI 時代的網絡爬蟲新形態與防護思路研究】

網絡爬蟲原理與攻擊防護的深度研究報告 網絡爬蟲技術已進入AI驅動的4.0時代,全球自動化請求流量占比突破51%,傳統防御手段在面對高度仿真的AI爬蟲時已顯疲態。基于2025年最新數據,深入剖析網絡爬蟲的基本原理、工作流程、分類與攻擊方式&…

低代碼平臺架構設計與關鍵組件

低代碼平臺的架構設計是其核心能力的關鍵支撐,需要平衡可視化開發的便捷性、生成應用的健壯性與性能、可擴展性以及企業級需求(如安全、多租戶、集成)。以下是一個典型的企業級低代碼平臺架構概覽及其關鍵組件: https://example.…

電商 ERP 系統集成接口指南

電商 ERP 系統的高效運行依賴于與多個業務系統的無縫對接,需要集成的核心接口包括:商品管理、訂單處理、庫存同步、物流配送、客戶管理、財務結算等。這些接口是實現數據互通、業務協同的關鍵橋梁。 一、電商 ERP 系統集成所需接口類型 (一…

Python實現對WPS協作群進行群消息自動推送

前言 本文是該專欄的第59篇,后面會持續分享python的各種干貨知識,值得關注。 相信有些同學在工作或者項目中,都會使用到“WPS協作”作為辦公聊天軟件。如果說,有些項目的監控預警正好需要你同步到WPS協作群,這個時候需要怎么去做呢? 而本文,筆者將基于WPS協作,通過Py…

js嚴格模式和非嚴格模式

好的,這是一個非常基礎且重要的概念。我們來詳細解析一下 JavaScript 中的嚴格模式(Strict Mode)和非嚴格模式(Sloppy Mode)。 可以把它想象成參加一場考試: 非嚴格模式:就像是開卷、不計時的…

板凳-------Mysql cookbook學習 (十一--------1)

第11章:生成和使用序列 11.0 引言 11.1 創建一個序列列并生成序列值 CREATE TABLE insect ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id),name VARCHAR(30) NOT NULL,date DATE NOT NULL,origin VARCHAR(30) NOT NULL); 字段說明 ?id…

Vue3 中 Excel 導出的性能優化與實戰指南

文章目錄 Vue3 中 Excel 導出的性能優化與實戰指南引言:為什么你的導出功能會卡死瀏覽器?一、前端導出方案深度剖析1.1 xlsx (SheetJS) - 輕量級冠軍1.2 exceljs - 功能強大的重量級選手 二、后端導出方案:大數據處理的救星2.1 為什么大數據需…