Python上的Python文本到语音发音丹麦语错误

时间:2015-02-07 13:42:27

标签: python macos multilingual speech-synthesis

我有以下程序试图发音一行丹麦文本。我无法弄清楚为什么它发错了。它应该听起来像“po so mo fo po”,但听起来并不像那样。这听起来更像是“p n s n m n f n p n”。我正在使用丹麦语“Magnus”,所以它应该知道如何发音。此外,当我使用OSX Voice Over发声时,它听起来是正确的。

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

from  AppKit import NSSpeechSynthesizer
import time
import sys

nssp = NSSpeechSynthesizer
ve = nssp.alloc().init()

from_voice = "com.apple.speech.synthesis.voice.magnus.premium"

line = "på så må få på"

ve.setVoice_(from_voice)
ve.startSpeakingString_(line)
time.sleep(1)

while ve.isSpeaking():
   time.sleep(1)

1 个答案:

答案 0 :(得分:2)

您需要传入unicode对象,而不是UTF-8字节字符串:

ve.startSpeakingString_(line.decode('utf8'))

您可以将line值定义为Unicode文字而不是解码:

line = u"på så må få på"