Python 关于 Mac 丹麦语发音错误的文字转语音

Python Text to Speech on Mac Pronouncing Danish Words Wrong

我有以下程序试图读出一行丹麦语文本。我不明白为什么它发音错误。它应该听起来像 "po so mo fo po",但它听起来根本不像那样。听起来更像 "p n s n m n f n p n"。我使用的是丹麦语 "Magnus" 所以它应该知道如何发音。此外,当我使用 OSX 画外音来发音时,它听起来很正确。

#!/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)

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

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

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

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