Package: ai-voice-sdk-standard
AI VOICE SDK簡介AI Voice是宏正自動科技的語音合成服務優聲學，使用本SDK是必須租用優聲學服務。租用服務請至https://www.aivoice.com.tw/business/enterprise上留下聯絡資料。宏正優聲學，推出限量企業標準版之語音合成服務，提供多個優質美聲，大量語音合成，歡迎企業用戶填寫表格連繫, 了解更多企業標準版方案細節!需求Windows需要安裝Microsoft C++ Build Tools，不然下載相依套件時會報error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/錯誤，相關資訊https://stackoverflow.com/questions/64261546/how-to-solve-error-microsoft-visual-c-14-0-or-greater-is-required-when-instPythonpython >= 3.7支援SSML版本version == v1.2安裝方式pip安裝SDKpip install ai-voice-sdk-standard手動安裝SDKpython-mpipinstallwheel
pythonsetup.pysdistbdist_wheel# 建立SDK安裝檔pipinstalldist\ai_voice_sdk_standard-x.x.x-py3-none-any.whl# 安裝SDK，其中 'x.x.x' 填入現在的版本號使用方式我們目前支援10個不同的聲優，而他們支援2種語言，包括中文和英文。以下範例程式是如何使用AI-Voice-SDK執行方式有分為一般和即時聲音播放模式使用一般模式，執行後文章送出到AI Voice server處理完以後，聲音資料送回來並合成一個.wav檔案# 設定一般模式# RunMode.NORMAL為default值converter.config.set_run_model(aivoice.RunMode.NORMAL)使用即時聲音播放模式，執行後文章送出到AI Voice server，將會開始即時播放聲音# 設定即時聲音播放模式converter.config.set_run_model(aivoice.RunMode.LIVE_PLAY_AUDIO)文字加入方式：文字，SSML格式，宏正優聲學RTF格式，文字檔，SSML格式檔案# 加入文字converter.text.add_text(text="歡迎體驗宏正優聲學，讓好聲音為您的應用提供加值服務。",position=-1)# 加入SSML格式converter.text.add_ssml_text(text="""<speak xmlns="http://www.w3.org/2001/10/synthesis" version="1.2" xml:lang="zh-TW"><voice name="Aaron">宏正自動科技的人工智慧語音合成技術，帶來超逼真<phoneme alphabet="bopomo" lang="TW" ph="ㄉㄜ˙">的</phoneme>合成語音<break time="300ms"/>：自然、真實，讓您拉近與客戶的距離，提高滿意度，帶來轉換率。</voice></speak>""",position=-1)# 加入宏正優聲學RTF格式converter.text.add_webpage_text(text="""按下合成鍵之前，我們[:ㄇㄣˊ]建議您先確認2個[:ㄍㄜ˙]問題：您的文章轉成語音之後，是好聽流暢的嗎？[:1.2秒]您有[:ㄧㄡˇ]將閱讀文，轉為聆聽文嗎？""",rate=1.01,pitch=0,volume=2.45,position=-1)# 讀取純文字檔加入converter.text.open_text_file(file_path="./textfile.txt",encode="utf-8",position=-1)# 讀取SSML格式的檔案converter.text.open_text_file(file_path="./ssmlfile.ssml",encode="utf-8",position=-1)合成聲音教學使用環境變數設定Token和AI Voice Server URL使用Command Prompt環境變數設定Token和AI Voice Server URL@rem 改為AI Voice網頁上的 API_ACCESS_TOKENsetx AI_VOICE_SDK_TOKEN your-token@rem Aten AI Voice Server URLsetx AI_VOICE_URL https://www.aivoice.com.tw/business/enterprise完整程式#coding:utf-8importosimportai_voice_sdkasaivoice# token = "API_ACCESS_TOKEN"token=os.environ.get('AI_VOICE_SDK_TOKEN')server=os.environ.get('AI_VOICE_URL')# 加入tokens內tokens=[token]# 建立轉換器設定檔# server_url 預設為 https://www.aivoice.com.tw/business/enterprise，可不填config=aivoice.ConverterConfig(tokens=tokens,server_url=server)# 選擇設定檔內選用的語音config.set_voice(aivoice.Voice.CALM_HANNAH)# 建立轉換器converter=aivoice.VoiceConverter(config=config)# 設定執行模式# RunMode.NORMAL為default值converter.config.set_run_mode(aivoice.RunMode.NORMAL)converter.text.add_text(text="歡迎體驗宏正優聲學，讓好聲音為您的應用提供加值服務。",position=-1)converter.text.add_ssml_text(text="""<speak xmlns='http://www.w3.org/2001/10/synthesis' version='1.2' xml:lang='zh-TW'><voice name='Aurora'>歡迎體驗宏正優聲學，讓好聲音為您的應用提供加值服務。</voice><voice name='Jason'>歡迎體驗宏正優聲學，讓好聲音為您的應用提供加值服務。</voice></speak>""",position=-1)converter.text.show()# 執行合成語音，且取得語音內容result=converter.run(interval_time=0,is_wait_speech=True)ifresult.status==aivoice.ConverterStatus.GetSpeechSuccess:print("Get speech data success.")# 將語音另存為"aivoice.wav"，且當語音數量超過一個時，將語音檔各別存為單一檔案result.save("aivoice",is_merge=True)else:ifresult.status==aivoice.ConverterStatus.GetSpeechFail:print(f"Error message:{result.error_message}")elifresult.status==aivoice.ConverterStatus.ConverVoiceFail:print(f"Error message:{result.error_message}")else:print(f"Converter status:{result.status.name}, Detail:{result.detail}")詳細教學：Tutorial